database diagnostic & tuning packs · Сессия, тратящая время, на...

35
<Insert Picture Here> Database Diagnostic & Tuning Packs

Upload: others

Post on 24-Jun-2020

18 views

Category:

Documents


0 download

TRANSCRIPT

<Insert Picture Here>

Database Diagnostic & Tuning Packs

Основные проблемы IT менеджеров

37%

25%

28%

49%

73%

87%

Others

Wide area network performance

Misconfiguration of network objects

Unanticipated infrastructure effects from

consolidation and new application projects

Unplanned infrastructure changes resulting in

incidents and downtime

Consistent end to end application and service

performance guarantee

Source: Forrester Research, March 2005

Управление производительностью критично для эффективности IT и бизнеса

<Insert Picture Here>

Исторический Взгляд

Методы настройки Oracle

• Доисторический период (v5)• Отладка Кода

• Средневековье (v6)• Счѐтчики/Отношения

• BSTAT/ESTAT

• SQL*Trace

• Возрождение (v7)• Появление инструментария для событий ожидания

• Переход от счѐтчиков к учѐту времени

• STATSPACK

• Современная эра (v10)• DB Time Tuning – Комплексная настройка, основанная на потреблении

времени в базе данных

• Разные уровни охвата

• Всегда включены, non-intrusive

• Встроены в инфраструктуру: ASH, AWR, ADDM, EM

<Insert Picture Here>

Ключевые Понятия

Database Time (DB Time)

• Время выполнения database calls foreground

сессиями

• Включает CPU , IO и non-idle wait время

• DB Time <> response time

• Новая метрика для анализа производительности

Oracle

Database time – общее время, проведённое пользовательскими процессами в активном

состоянии или активном ожидании выполнения database calls.

Активная Сессия = Сессия, тратящая время, на выполнение database call

Database Time (DB Time) =Общее время сессии, проведѐнное во всех database calls

Средняя Активность Сессии (% Активности) =Отношение активного времени к общему прошедшему времени

Просмотр

Книг

Читать отзывыо книге

Добавить в корзину

Расчѐт

Время= время, проведѐнное в БД

Основные Понятия

= время, проведѐнное в БД

Много Сессий

TIME

User 1

User 2

User 3

User n

t

В момент t у нас 2 активные сессии

DB Time = Сумма DB Time для Всех Сессий

Среднее Кол-во Активных Сессий = Сумма Средней Активности для Всех Сессий

Wall-Clock (Elapsed) TimeTotal Database Time

=

EM Performance страница

• Распределение Активных Сессий по классам ожиданий

• Цветные области = кол-во DB time

• Большое кол-во Активных Сессий для класса ожиданий –

Проблема!

<Insert Picture Here>

Ключевые Компоненты

Инфраструктуры

• Встроенный в базу данных репозиторий статистики нагрузки

и производительности

• Автоматически Захватывает Данные о Нагрузке

• Каждые 60 минут или вручную, по умолчанию данные

хранятся 8 дней

• Находится в SYSAUX табличном пространстве

• Автоматическое управление пространством репозитория

• Старые данные автоматически удаляются по ночам в

зависимости от интервала хранения

• Хранит разные классы данных:

• BASE STATISTICS, например, физические чтения

• SQL STATISTICS, например, дисковые чтения (для SQL операторов)

• METRICS , например, кол-во физических чтений в сек.

• ACTIVE SESSION HISTORY (ASH)

Automatic Workload Repository (AWR)

Active Session History (ASH)

Анализ неустойчивых проблем

производительности

• Снимки активных сессий за каждую секунду в оперативной памяти (v$active_session_history)

• Прямой доступ к структурам ядра Oracle

• В AWR сохраняется 1 из 10 снимков

• Захватываемые данные:• SID

• SQL ID

• Program, Module, Action

• Wait event#

• Object, File, Block

• Фактическое время ожидания

DB Time

Query for

Khalid

Husaini

Novels

Browse and

Read

Reviews

Add

item to

cart

Checkout

using

‘one-click’

Active Session History (ASH)

WAITING

State

db file sequential

readqa324jffritcf2137:38:26

EventSQL IDModuleSIDTime

CPUaferv5desfzs5Get review id2137:42:35

WAITING log file syncabngldf95f4deOne click2137:52:33

WAITING buffer busy waithk32pekfcbdfrAdd to cart2137:50:59

Book by author

<Insert Picture Here>

Увеличение

Производительности

Основной Процесс Настройки

Производительности

• Захват данных нагрузки и производительности

• Системная статистика, информация об ожиданиях, SQL статистика и т.д.

• Анализ

• Какие операции потребляют больше всего времени ?

• Какие ресурсы являются узким местом?

• Какая первопричина ?

• Как можно решить проблему?

• Решение Проблем

• Если обнаружено несколько проблем, какая наиболее критичная?

• Какое решение даст наибольший эффект?

AWR

ADDM

ADDM

Автоматический Анализ с ADDM

• Automatic Database Diagnostic Monitor (ADDM)

• Автоматически делает анализ производительности на уровне БД

• Механизм самодиагностики внутри БД

• Объединяет вместе все компоненты

• Поддерживает RAC

• Обеспечивает анализ влияний и выгод, выделяет не проблемные области

• Работает по умолчанию, можно запускать вручную, когда требуется

• Анализ в реальном времени и исторический

SQL

Advisor

High-load

SQL

IO / CPU

issues RAC issues

Automatic Diagnostic Engine

Snapshots in

Automatic Workload

Repository

Самодиагностика внутри DB

System

Resource

Advice

Network +

DB config

Advice

Ручной Анализ Производительности

• CBS Метод (“Click on

the Big Stuff метод”) –

Нажми на Большую

Штуку метод

• Показывает ASH

выборки для

заданного класса

ожиданий

• Отвечает на вопросы

“кто” и “что” для

проблемы

• Кто тормозит

систему?

• Что делает этот

человек?

Адресный Анализ

Производительности с ASH• ASH позволяет делать адресный анализ для неустойчивых проблем

производительности

• ASH Отчѐт может быть отфильтрован по времени, SID, SQL ID, Wait

Class, Service, Module, Action, Client ID

• Помогает ответить на вопрос типа “Замедляется ли данный SQL с

течением времени?”Performance

Time

*

Range

Сравнительный Анализ

Производительности с AWR Baselines и

Отчѐтами • Автоматическое создание и управление baselines

• Сравнение производительности за 2 периода через сравнениеAWR отчѐтов

• Позволяет легче диагностировать отклонения в производительности и нагрузки

• Готовый скользящий (moving window) baseline

• Проактивный мониторинг производительности с помощью адаптивных пороговых значений

• Baseline – ключ для настройки производительности

• Установка предупреждений о превышении пороговых значений метрик

• Мониторинг производительности

• Сравнение отклонений производительности

time

Performance

Baseline

Actual

Настройка SQL с помощью SQL

AdvisorsSQL Tuning & Access Advisors

• Автоматизируют настройкуSQL и приложения

• Показывают степень важности для каждого совета

• Рекомендации: новыеиндексы, секции, MV’s, обновить статистику, SQL реструктуризация и SQL Profiling

• SQL Profiling прозрачно настраивает SQL без изменения кода приложения

• Настройка закрытых приложений 3-х фирм

SQL

Profile

Packaged

Apps

+SQL

Advice

Customizable

Apps

+Indexes, MVs,

Partitions

Well-tuned SQL

High-load SQL

Packaged

Apps

Customizable

Apps

Automatic Tuning Optimizer

Auto SQL

Tuning

Auto SQL

Analysis

Access

Advisor

Customizable

Apps

+

SQL Tuning Advisor

Добавить

индексы

Изменить SQL

Создать SQL

Profile

Automatic Tuning Optimizer (ATO)

SQL Structure Analysis

Access Path Analysis

SQL Profiling

Statistics Analysis

Пересобрать

устаревшую

статистику

DBA

SQL Tuning

Рекомендации

SQL Tuning Advisor

Что такое SQL Profile?

Содержит дополнительную информацию, собранную

ATO для SQL предложения

– Настройки оптимизатора

Основанные на предыдущей истории выполнения SQL

(например, first_rows или all_rows)

– Компенсирует отсутствующую или устаревшую статистику

– Компенсирует оценочные ошибки оптимизатора

Оценочные ошибки могут возникать из-за корреляции и

неравномерного распределения данных, сложных фильтров и

соединений

Не требуется изменения SQL текста

– Идеально для закрытых приложений 3-х фирм

Постоянный: Работает через shutdowns & upgrades

Переносится между базами данных (10.2)

SQL Profiling Шаги

Optimizer(Tuning Mode)

createsubmit

SQL Profiling

Optimizer(Normal Mode)

outputsubmit

SQL

ProfileSQL Tuning

Advisor

Database

Users

Well-Tuned

Plan

После …

Настройка SQL в Oracle Database 10gEnd-to-End Workflow

Workload

SQL – Кандидаты для

настройки

SQL Tuning Advisor

ADDM

AWR

one hour

Создаѐт

Рекомендации

DBA

Вызывает

Advisor

Применяет

DBA

Хорошее, законченное решение,

но требуется ручное вмешательство

Оценивает

Рекомендации

DBA

Автоматическая Настройка SQL в

Oracle Database 11g

• Полная автоматизация настройки SQL

• Автоматический захват “тяжѐлых” SQL

• Автоматическая настройка SQL без изменения кода приложения через созданиеSQL Profiles

• Автоматическое внедрение (необязательное) SQL Profiles, если новый план выполнения SQL лучше в несколько раз

• Автоматические отчѐты с результатами анализа SQL

• Автоматически запускается в окне регламентных работ (по ночам)

Packaged

AppsCustom

Apps

Automatic SQL Tuning

Auto Capture

High-Load SQL

SQL Profiles

По ночам

Well-tuned SQL

Автоматическое Применение

Ручное применение

SQL Analysis

Report

Автоматическая Настройка SQL в Oracle 11g

Автоматически!

Выбирает

Candidate

SQL

one

week

Workload

SQL Tuning

Candidates

Тестирует SQL ProfilesПрименяет

SQL Profiles

Генерит

Рекомендации

AWRDBA

Смотрит Отчѐты /

Контролирует

Процесс

SQL Access Advisor

Partitions (11g

only)

MV и MV Logs

Bit-map indexesAutomatic Tuning

Optimizer

Access Path Analysis

B*-tree indexes

DBA

Рекомендации

SQL Access Advisor

Возможности SQL Access Advisor

• Рекомендует создать/удалить индексы, секции (только хэш иинтервальные), материализованные представления и их журналы для увеличения производительности

• Анализирует всю нагрузку а не только отдельные SQL предложения

• Учитывает влияние вновь создаваемых объектов на скорость выполнения DML операций

• Учитывает стоимость хранения, создания и поддержки новых объектов

• Одновременно рассматривает

• Создание индексов

• Создание материализованных представлений

• Комбинацию обоих предыдущих вариантов

• Оптимизирует материализованные представления

• Для максимального использования query rewrite

• Быстрого обновления

<Insert Picture Here>

Итог

Используйте DBA 2.0 технологии и …

Вы сможете обслуживать

• Больше баз данных

• Больше приложений: OLTP, DW, OCS, iAS

• Больше пользователей, базы данных большего размера

• Больше mission-critical приложений

Станете

• Более проактивным и стратегически мыслящим

• Более важным и ценным!

Получите

• Больше сна по ночам!

• Больше выходных!