Informe AWR diff (compare period) entre dos periodos
OracleRendimientoComando
-- 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_HTMLQué hace
Pone dos rangos de snapshots lado a lado y muestra las diferencias porcentuales en DB time, wait events, load profile y estadísticas por SQL. Responde directamente a "ayer iba bien, hoy va lento".
Cuándo usarlo
Análisis de regresiones tras un upgrade/parche, un cambio de parámetros, un despliegue o una recopilación de estadísticas; comparar la misma franja horaria en dos días.
Precaución
Requiere la licencia de Diagnostics Pack. Los periodos comparados deben tener la misma duración y una carga similar; de lo contrario los deltas son engañosos. Para comparar bases de datos distintas (p. ej., prod vs. test), traslade los datos de AWR con awrextr.sql/awrload.sql y pase el dbid2 correspondiente.
Relacionado
- Tomar un snapshot de AWR y generar un informe AWR entre dos snapshots
- Top wait events y top SQL desde ASH para los últimos minutos
- Ejecutar un análisis ADDM y obtener su informe
- Obtener un informe de SQL Monitor (SQL largo en ejecución o finalizado)
- Habilitar/deshabilitar el trace 10046 para una sesión y resumirlo con TKPROF
- Mostrar el plan de ejecución real con estadísticas de row source (ALLSTATS LAST)