Oracle AWR - инструмент сбора статистики и диагностики производительности баз данных Oracle 10g и старше, пришедшее на смену пакету perfstat в 9i. Начиная с 10-й версии в Oracle появился новый фоновый процесс - MMON, который и занимается сбором статистики. По умолчанию он создает snapshot (снимок состояния системы) и сохраняет информацию в табличном пространстве SYSAUX каждый час и хранит его в течение недели. Можно переопределить период сбора информации или принудительно собрать snapshot вручную.
-- Теперь будем собирать snapshot каждые 120 минут и хранить 14400 минут (10 дней) BEGIN DBMS_WORKLOAD_REPOSITORY.modify_snapshot_settings( retention => 14400, INTERVAL => 120); END; / -- Соберём snapshot на текущий момент вручную EXEC DBMS_WORKLOAD_REPOSITORY.create_snapshot; -- Удалим снимки состояния с 20 по 30 включительно BEGIN DBMS_WORKLOAD_REPOSITORY.drop_snapshot_range ( low_snap_id => 20, high_snap_id => 30); END;
Для просмотра статистики используется скрипт awrrpt.sql. Он вычисляет разницу между двумя снимками и записывает отчёт в файл (текстовый либо html, по выбору).
@$ORACLE_HOME/rdbms/admin/awrrpt
этот сценарий предложит выбрать формат отчёта (по умолчанию - html) и пару снимков для сравнения.
Посмотрим, какие значения могут нас заинтересовать:
- Статистики памяти. Секция "Memory Statistics" в отчёте.
- Проценты попадания в кэши, процент soft parses, etc. (Hit Ratios). Секция "Instance Efficiency Percentages".
- События ожидания (Wait Events). Секции "Foreground Wait Events" и "Background Wait Events".
- Распределение рабочего времени (Time Model Statistics) - на что было потрачено рабочее (non-idle) время.
- Данные различных Advisor'ов. Секция "Advisory Statistics".
- Статистики запросов. Секция "SQL Statistics".
Более детальную информацию по интересующему нас запросу можно получить с помощью скрипта awrsqlrpt.sql. Для его работы потребуется SQL ID, полученный в секции "SQL Statistics" отчёта AWR.
Скрипт ashrpt.sql предоставит статистику активных сессий, взятую из представления V$ACTIVE_SESSION_HISTORY, в удобном виде.