Отчёт AWR diff (compare period) между двумя периодами
OracleПроизводительностьКоманда
-- Interactive: @?/rdbms/admin/awrddrpt.sql (RAC: awrgdrpt.sql)
-- From a script: period 1 (good) = <bid1>-<eid1>, period 2 (bad) = <bid2>-<eid2>
SET LINESIZE 8000 PAGESIZE 0 TRIMSPOOL ON HEADING OFF FEEDBACK OFF
SPOOL /tmp/awr_diff.txt
SELECT output
FROM TABLE(DBMS_WORKLOAD_REPOSITORY.AWR_DIFF_REPORT_TEXT(
dbid1 => (SELECT dbid FROM v$database), inst_num1 => 1,
bid1 => <bid1>, eid1 => <eid1>,
dbid2 => (SELECT dbid FROM v$database), inst_num2 => 1,
bid2 => <bid2>, eid2 => <eid2>));
SPOOL OFF
-- HTML: DBMS_WORKLOAD_REPOSITORY.AWR_DIFF_REPORT_HTMLЧто делает
Сопоставляет два диапазона снимков и показывает процентные различия в DB time, wait events, профиле нагрузки и статистике по каждому SQL. Прямо отвечает на вопрос "вчера было нормально, сегодня медленно".
Когда использовать
Анализ регрессии после обновления/патча, изменения параметров, развёртывания или сбора статистики; сравнение одного и того же временного интервала в два разных дня.
Внимание
Требует лицензии Diagnostics Pack. Сравниваемые периоды должны быть одинаковой длины и с похожей нагрузкой, иначе разница вводит в заблуждение. Для сравнения разных баз данных (например, prod и test) перенесите данные AWR через awrextr.sql/awrload.sql и передайте соответствующий dbid2.
Связанные материалы
- Сделать снимок AWR и сформировать отчёт AWR между двумя снимками
- Топ wait events и топ SQL из ASH за последние минуты
- Выполнить анализ ADDM и получить отчёт
- Получить отчёт SQL Monitor (выполняющийся или завершённый долгий SQL)
- Включить/выключить трассировку 10046 для сессии и обобщить её через TKPROF
- Показать фактический план выполнения со статистикой row source (ALLSTATS LAST)