El Automatic Workload Repository (AWR) y Active Session History (ASH) son componentes clave de Oracle Database que proporcionan información sobre el rendimiento y la actividad del sistema. A continuación, se ofrece una descripción general y detalles sobre cómo utilizarlos en Oracle 19c.
Automatic Workload Repository (AWR)
AWR es una colección de estadísticas del rendimiento de la base de datos que se recopila automáticamente y se almacena en la base de datos. Proporciona información detallada sobre el rendimiento a lo largo del tiempo, permitiendo a los administradores de bases de datos identificar y resolver problemas de rendimiento.
Características de AWR:
- Reportes de AWR: Permiten analizar el rendimiento y las tendencias a lo largo del tiempo.
- Recopilación automática: AWR recopila estadísticas cada 60 minutos por defecto.
- Historial: Guarda la información de rendimiento en intervalos (snapshots) durante un período prolongado.

Configuración del AWR
Habilitación del AWR
El AWR está habilitado por defecto a partir de Oracle Database 10g. Sin embargo, para asegurarte de que está habilitado:
SELECT value
FROM v$parameter
WHERE name = 'diagnostic_dest';
Esto debe devolver un valor que indique la ubicación del destino de diagnóstico, que incluye los repositorios de AWR.
Parámetros de Inicialización
Los siguientes parámetros son importantes para la configuración de AWR:
AWR_RETENTION:- Descripción: Define el tiempo de retención de los datos recopilados por AWR en minutos. El valor predeterminado es 8 días (11,520 minutos).
ALTER SYSTEM SET AWR_RETENTION = 4320; -- Para retener datos durante 3 días
AWR_SNAPSHOT_INTERVAL:
- Descripción: Este parámetro define la frecuencia con la que AWR toma instantáneas de los datos del rendimiento. El valor predeterminado es 60 minutos.
ALTER SYSTEM SET AWR_SNAPSHOT_INTERVAL = 30; -- Para una frecuencia de 30 minutos
AWR_MAX_SNAPSHOTS:
- Descripción: Limita el número máximo de instantáneas que se pueden mantener en el AWR. Se ajusta si se cuenta con una gran cantidad de información que no se necesita mantener por mucho tiempo.
ALTER SYSTEM SET AWR_MAX_SNAPSHOTS = 1000; -- Limitar a 1000 instantáneas
Generación de un reporte AWR:
Puedes generar un informe AWR usando el siguiente procedimiento:
- Toma de Snapshots:
AWR toma snapshots automáticamente. Puedes consultar los snapshots existentes con:
SELECT * FROM dba_hist_snapshot;
Generar un Reporte AWR
Puedes generar el informe a través de SQL*Plus con el siguiente script, generalmente ubicado en:
$ORACLE_HOME/rdbms/admin/awrrpt.sql
@?/rdbms/admin/awrrpt.sql
Durante este proceso, puedes elegir el rango de fechas y el formato del informe (HTML o texto)
Si estás utilizando Oracle RAC (Real Application Clusters), asegúrate de configurar AWR para recopilar datos de todas las instancias:
ALTER SYSTEM SET AWR_REMOTE_REPOSITORIES='ALL';
Esto permite que las instantáneas de AWR sean recopiladas desde todas las instancias de la base de datos.
Active Session History (ASH)
ASH es una subconjunto de AWR que captura información en tiempo real sobre las sesiones activas en la base de datos. Permite analizar lo que está sucediendo en la base de datos en un momento determinado.
Características de ASH:
- Muestra de actividad en tiempo real: Proporciona información sobre las sesiones activas en intervalos de 1 segundo.
- Retención temporal: ASH mantiene datos por un breve período (generalmente 1 hora).
- Análisis de problemas: Permite identificar cuellos de botella y problemas de rendimiento en tiempo real.

Configuración
ASH se basa en el Automatic Workload Repository (AWR), y generalmente no requiere una configuración extensiva, ya que está habilitado por defecto en Oracle. Sin embargo, hay algunos parámetros relevantes a considerar:
Parámetros relacionados con ASH
ASH_RETENTION:- Descripción: Este parámetro define cuánto tiempo se retiene la información de ASH en minutos. El valor predeterminado es de 1 hora (60 minutos). Ajustar este valor puede ser útil si quieres mantener datos de sesiones activas por un periodo más largo para análisis.
ALTER SYSTEM SET ASH_RETENTION = 120; -- Para retener datos durante 2 horas
ASH_SIZE:
- Descripción: Define el tamaño máximo de la memoria en que se almacena la información de ASH. Por defecto, este valor es dinámico y se ajusta automáticamente si el sistema tiene suficiente memoria. Sin embargo, puedes monitorizar el uso por medio de las vistas de rendimiento.
SELECT * FROM V$ASH_INFO;
Consulta de ASH
Puedes consultar la vista ASH para ver la actividad reciente:
SELECT
sample_time,
session_id,
session_state,
sql_id,
wait_event,
wait_time,
blocking_session
FROM
v$active_session_history
ORDER BY
sample_time DESC;
Obtener sesiones activas
SELECT session_id, user_id, sql_id, event, wait_time, time_waited
FROM v$active_session_history
WHERE session_state = 'ACTIVE'
ORDER BY time_waited DESC;
Estadísticas de rendimiento de SQL:
SELECT sql_id, COUNT(*) as active_count
FROM v$active_session_history
GROUP BY sql_id
ORDER BY active_count DESC;
Eventos de espera:
SELECT event, COUNT(*) AS event_count
FROM v$active_session_history
WHERE session_state = 'WAITING'
GROUP BY event
ORDER BY event_count DESC;
Generación de Informes ASH
Puedes generar informes de ASH usando un script proporcionado por Oracle:
-- Ejecutar el script ASH report
@?/rdbms/admin/ashrpt.sql
Este script te guiará a través del proceso de creación de un informe que te dará una visión general de las sesiones activas y los problemas de rendimiento.
Combinación de AWR y ASH
AWR y ASH son herramientas que se complementan. AWR muestra el rendimiento de la base de datos a lo largo del tiempo, mientras que ASH facilita el análisis de sesiones activas.
- Uso de AWR: Ideal para informes y análisis a largo plazo.
- Uso de ASH: Perfecto para diagnóstico instantáneo de problemas de rendimiento.

Herramientas adicionales
- ADRCI: Oracle también proporciona el Oracle Automatic Diagnostic Repository Command Interface (ADRCI), que es útil para acceder a diagnósticos y recopilar información de rendimiento, incluyendo AWR y ASH.
- Enterprise Manager: Puedes usar Oracle Enterprise Manager para acceder a reportes AWR y ASH de manera gráfica y más accesible.
AWR y ASH son indispensables para cualquier DBA que busque optimizar el rendimiento de las bases de datos Oracle. Con la capacidad de generar reportes y analizar datos en tiempo real, te permite identificar y solucionar problemas de rendimiento de manera eficaz.






Replica a Mean Time to Recovery Advisor (MTTR Advisor) – De Males y Maleficios para el DBA Cancelar la respuesta