Ответ
AWR (Automatic Workload Repository) — это встроенное в Oracle средство сбора, обработки и хранения диагностических данных о производительности базы данных. AWR-отчет — это снимок этой статистики за определенный период, который является основным инструментом для анализа производительности и поиска узких мест.
Как это работает?
- Фоновый процесс MMON (Manageability Monitor) каждые 60 минут (по умолчанию) делает снапшот ключевых системных метрик (V$ представления) и сохраняет их в AWR.
- Отчет сравнивает два снапшота, показывая, что изменилось за выбранный интервал.
Ключевые разделы AWR-отчета и что они показывают:
| Раздел | Назначение | Ключевые метрики |
|---|---|---|
| Load Profile | Общая нагрузка на БД. | Transactions/sec, Logical Reads/sec, Physical Reads/sec, Hard Parses/sec. |
| Top 10 Foreground Events by Total Wait Time | Основные причины ожиданий (узкие места). | db file sequential read (ожидание индексов), db file scattered read (полнотабличный доступ), log file sync (коммит). |
| SQL Statistics | Самые ресурсоемкие SQL-запросы. | SQL ordered by Elapsed Time, by CPU Time, by Gets (логические чтения), by Executions. |
| Instance Efficiency Percentages | Эффективность использования памяти. | Buffer Hit Ratio (%), Library Hit Ratio (%). Цель > 90%. |
| Wait Event Histogram | Детализация времени ожиданий. | Показывает, сколько событий длилось <1мс, 1-4мс и т.д. |
*Как сгенерировать AWR-отчет из SQLPlus:**
-- 1. Найти ID нужных снапшотов
SELECT snap_id, begin_interval_time, end_interval_time
FROM dba_hist_snapshot
ORDER BY snap_id DESC;
-- 2. Запустить скрипт создания отчета (укажите начальный и конечный snap_id)
@$ORACLE_HOME/rdbms/admin/awrrpt.sql
-- Скрипт запросит тип отчета (text/html) и имя файла.
Практическое применение:
- Анализ деградации производительности: Сравнить отчеты "до" и "после" изменений или в периоды пиковой нагрузки.
- Поиск проблемных запросов: Выявить SQL с высоким временем выполнения, большим числом чтений или физических I/O.
- Настройка памяти: Определить, нужен ли больший размер буферного кеша или пула разделяемых областей.
Связанные инструменты: ASH (Active Session History) — дает детальную информацию об активных сессиях в реальном времени (удобен для анализа коротких инцидентов). ADDM (Automatic Database Diagnostic Monitor) — автоматически анализирует AWR-данные и дает рекомендации.