• Categoría: Oracle
  • Visto: 41183

Ratio: 4 / 5

Inicio activadoInicio activadoInicio activadoInicio activadoInicio desactivado
 
Oracle

AWR es una herramienta desarrollada por Oracle he incluida a partir de Oracle 10g que nos permite extraer informes del estado de nuestra base de datos para poder realizar tareas de Tuning, esta herramienta es una evolución de Oracle StatsPack que estaba incluida en Oracle 9i.

 

El AWR realiza la recolección de datos estadísticos y de rendimiento de una base de datos Oracle que incluye:

 

  •   Eventos Wait usados para identificar problemas de rendimiento.
  •   Estadísticas de System y sesiones.
  •   Estadísticas de uso de objetos.
  •   Estadísticas de estamentos SQL, Select, Insert, etc.

 

Los Snapshots.

 

Por defecto Oracle AWR realiza la recolección de datos cada hora con una retención de 7 días, si deseamos variar esta configuración podemos cambiarla usando:

En este ejemplo cambio la retención a 15 días y a intervalos de 15 minutos.

 


BEGIN
    DBMS_WORKLOAD_REPOSITORY.modify_snapshot_settings(
      retention => 21600,        -- Minutos.
      interval  => 15);          -- Minutos.
END;
/


 

Para volver a la situación por defecto ejecuto DBMS_WORKLOAD_REPOSITORY.modify_snapshot_settings con los valores para 7 días de retención y 1 hora para el intervalo.

 


BEGIN
DBMS_WORKLOAD_REPOSITORY.modify_snapshot_settings( retention => 10080,  interval  => 60);
END;
/


 

Una vez realizada la modificación puedes comprobar como quedan los cambios consultando la tabla DBA_HIST_WR_CONTROL.

 

Ejemplo:

 


SET LINESIZE 200
COLUMN SNAP_INTERVAL FORMAT A30
COLUMN RETENTION     FORMAT A30
SELECT * FROM DBA_HIST_WR_CONTROL;


 

Resultado:

 


SQL> SET LINESIZE 200
SQL> COLUMN SNAP_INTERVAL FORMAT A30
SQL> COLUMN RETENTION     FORMAT A30
SQL> SELECT * FROM DBA_HIST_WR_CONTROL;

DB Id       SNAP_INTERVAL                  RETENTION                      TOPNSQL
----------- ------------------------------ ------------------------------ ----------
2390722876  +00000 01:00:00.0              +00007 00:00:00.0              DEFAULT


 

La recolección automática en AWR solo es posible si el parámetro STATISTICS_LEVEL esta inicializado a TYPICAL (por defecto) o CALL, si el valor de este parámetro es BASIC lanzar Snapshop de forma manual pero perderemos algunas estadísticas.

 

Para lanzar un Snapshop de forma manual ejecutaremos lo siguiente:

 


EXEC DBMS_WORKLOAD_REPOSITORY.create_snapshot;

 

Si queremos borrar un Snapshop ejecutaremos:

 


BEGIN
    DBMS_WORKLOAD_REPOSITORY.drop_snapshot_range (
      low_snap_id  => 22,   -- Snapshop más bajo
      high_snap_id => 32);  -- Snapshop más alto
END;
/


 

Oracle AWR provee dos scripts SQL que producen informes del repositorio AWR, son awrrpt.sql y awrrpti.sql, ambos ofrecen la posibilidad de que el informe se genere en formato de texto o en formato HTML, los dos dan básicamente la misma información pero el awrrpti.sql te permite sacar el informe de una única instancia.

 

Los informes lo podemos generar de la siguiente manera: 

 


@$ORACLE_HOME/rdbms/admin/awrrpt.sql

 


@$ORACLE_HOME/rdbms/admin/awrrpti.sql

 

Una vez ejecutéis el script os pedirá el tipo de informe, texto o HTML, aparecerá un lista de los shapshop disponibles, seleccionas los que os interese y se generará el informe AWR con el nombre de fichero que hayáis definido.

 

Ejemplos de informe AWR tanto en  formato de texto como en formato HTML (solo es una pequeña porción del informe):

 

AWR en formato de texto

 


WORKLOAD REPOSITORY report for

DB Name         DB Id    Instance     Inst Num Release     RAC Host
------------ ----------- ------------ -------- ----------- --- ------------
PRUEBA01      3803074214 PRUEBA01            1 10.2.0.1.0  NO  lce4s002v

Snap Id      Snap Time      Sessions Curs/Sess
--------- ------------------- -------- ---------
Begin Snap:        14 10-Oct-11 03:00:51        18       1.8
End Snap:        15 10-Oct-11 04:00:58        17       1.9
Elapsed:               60.12 (mins)
DB Time:                0.00 (mins)

Cache Sizes
~~~~~~~~~~~                       Begin        End
---------- ----------
Buffer Cache:       276M       276M  Std Block Size:         8K
Shared Pool Size:       108M       108M      Log Buffer:     7,000K

Load Profile
~~~~~~~~~~~~                            Per Second       Per Transaction
---------------       ---------------
Redo size:                158.91             71,655.00
Logical reads:                  2.43              1,094.25
Block changes:                  0.48                216.50
Physical reads:                  0.00                  0.75
Physical writes:                  0.10                 46.88
User calls:                  0.00                  1.25
Parses:                  0.15                 67.00
Hard parses:                  0.01                  3.38
Sorts:                  0.36                161.63
Logons:                  0.00                  0.38
Executes:                  0.81                364.63
Transactions:                  0.00

% Blocks changed per Read:   19.79    Recursive Call %:    99.96
Rollback per transaction %:    0.00       Rows per Sort:     8.90


 

AWR en formato HTML

 

AWR en Oracle Database 10g