Диагностика производительности Oracle Database: интенсивный курс
В мастер-классе затрагиваются следующие темы:
- обзор проблем производительности в целом, потенциальных узких мест вне СУБД, наиболее популярных причинах в СУБД и способах их исправления;
- концепция сессии в Oracle, её состояния, события ожидания, классы событий;
- встроенные инструментальные средства — динамические представления (так называемые "v$ views") с примерами конкретных диагностических данных, которые можно получить;
- Active Session History (ASH) — механизм сэмплирования и временного сохранения рабочей нагрузки;
- AWR — исторические данные нагрузки, отчеты производительности;
- Автоматические средства диагностики и помощи – ADDM и SQL Advisor;
- мониторинг выполнения SQL.
В мастер-классе затрагиваются следующие темы:
- обзор проблем производительности в целом, потенциальных узких мест вне СУБД, наиболее популярных причинах в СУБД и способах их исправления;
- концепция сессии в Oracle, её состояния, события ожидания, классы событий;
- встроенные инструментальные средства — динамические представления (так называемые "v$ views") с примерами конкретных диагностических данных, которые можно получить;
- Active Session History (ASH) — механизм сэмплирования и временного сохранения рабочей нагрузки;
- AWR — исторические данные нагрузки, отчеты производительности;
- Автоматические средства диагностики и помощи – ADDM и SQL Advisor;
- мониторинг выполнения SQL.
Подробный план:
1. Введение – обзор базовых принципов:
- время отклика приложения и факторы влияющие на него;
- симптоматический анализ, наиболее частые проблемы;
- представления v$ – многогранный универсальный инструмент;
- концепция сессии в Oracle;
2. Практика: изучаем время проведенное приложением в разных состояниях, используя v$sess_time_model. Диагностируем приложение, не развивающее должную производительность, проблемы с избыточным парсингом SQL, время проведенное в выполнении SQL.
3. Практика: собираем и изучаем кумулятивную статистику сессии и системы с помощью v$sessstat / v$sysstat. Исследуем различные статистики, используемые для понимания ключевых показателей сессии.
4. Теория: состояния сессии, события ожидания и классы этих событий.
5. Практика: v$session_event. Исследуем, чего ждала сессия. Случаи плохой конфигурации сети, чрезмерного commit’а, конкуренции за одни и те же данные.
6. Практика: v$session – все сессии базы, как на ладони. Понимаем важность инструментирования своего кода. Исследуем системные сессии.
7. Теория: ограничения представлений v$ для анализа прошлого. Механизм семплирования активных сессий. Automatic workload repository. StatPack как бесплатная альтернатива.
8. Практика: изучение исторической активности сессии. Генерация и изучение AWR отчета.
9. Теория: возможности самоуправляемой СУБД – ADDM, фреймворк помощников.
10. Практика: генерация отчета ADDM и применение рекомендаций. Настройка выполнения SQL с помощью SQL Tuning Adviser.
11. Практика: использование v$sql_monitor, v$session_longops, report_sql_monitor для понимания прогресса выполнения SQL.