Ajustando STATSPACK Collection levels

Photo by Susan Q Yin on Unsplash

Ajustando STATSPACK Collection levels

Statspack es una herramienta de rendimiento en Oracle que se utiliza para recopilar y mostrar estadísticas detalladas sobre el rendimiento de una base de datos.

Está diseñado para ayudar a los administradores de bases de datos a identificar cuellos de botella y problemas de rendimiento.

En términos generales, Statspack recopila datos de rendimiento en intervalos regulares y almacena esta información en tablas especiales en la base de datos. Luego, los informes de Statspack pueden ser generados para analizar estas estadísticas y entender mejor el comportamiento de la base de datos.

Los "collection levels" en Statspack se refieren a la cantidad y el tipo de información que Statspack recopila en cada ejecución.

Hay varios niveles de recopilación disponibles, desde niveles básicos hasta niveles más detallados.

Aquí hay una breve descripción de algunos de los collection levels más comunes:

SELECT * FROM stats$level_description ORDER BY snap_level;

SNAP_LEVEL DESCRIPTION                                                                                                                                                                                                                                                                                                 
---------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
         0 This level captures general statistics, including rollback segment, row cache, SGA, system events, background events, session events, system statistics, wait statistics, lock statistics, and Latch information                                                                                            
         5 This level includes capturing high resource usage SQL Statements, along with all data captured by lower levels                                                                                                                                                                                              
         6 This level includes capturing SQL plan and SQL plan usage information for high resource usage SQL Statements, along with all data captured by lower levels                                                                                                                                                  
         7 This level captures segment level statistics, including logical and physical reads, row lock, itl and buffer busy waits, along with all data captured by lower levels                                                                                                                                       
        10 This level includes capturing Child Latch statistics, along with all data captured by lower levels

A continuación muestro el procedimiento para modificar dicho nivel de recolección a un nivel 6, ya que me resulta necesario a la hora de analizar planes de ejecución de SQLID (aplica para un caso de análisis donde analizo el impacto del uso de un índice en concreto para distintos sqlid)


select SNAP_LEVEL from  STATS$STATSPACK_PARAMETER;

SNAP_LEVEL
----------
         5

exec statspack.snap(i_snap_level => 6, i_modify_parameter => 'true');

PL/SQL procedure successfully completed.

select SNAP_LEVEL from  STATS$STATSPACK_PARAMETER;

SNAP_LEVEL
----------
         6


select name,snap_id, snap_level, to_char(snap_time,'DD/MM/YYYY:HH24:MI:SS') "Date/Time"
from stats$snapshot,v$database
where snap_time > (sysdate-1) 
order by snap_id desc
fetch first 1 rows only;

NAME         SNAP_ID SNAP_LEVEL Date/Time          
--------- ---------- ---------- -------------------
BBDDPRO        29939          6 15/11/2023:13:48:25

Recuerda que la información recopilada por Statspack puede consumir espacio en la base de datos, por lo que es importante encontrar un equilibrio entre la cantidad de detalles necesarios y el impacto en el almacenamiento.