database diagnostic & tuning packs -...
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 приложений
Станете
• Более проактивным и стратегически мыслящим
• Более важным и ценным!
Получите
• Больше сна по ночам!
• Больше выходных!