En muchos entornos Oracle, especialmente on-premise o sin licencias avanzadas de diagnóstico, sigue siendo un desafío contar con visibilidad clara sobre el rendimiento de la base de datos. En este contexto, Statspack se mantiene como una herramienta simple, poderosa y muy vigente para los DBAs.
Aunque Oracle hoy ofrece soluciones más modernas como AWR, Statspack continúa siendo una excelente alternativa para entender el comportamiento histórico de la base de datos sin incurrir en costos adicionales. En este artículo revisaremos de forma práctica para qué sirve Statspack y cómo instalarlo paso a paso.
¿Qué es Statspack y para qué sirve?
Statspack es una herramienta incluida en Oracle que permite recopilar estadísticas de rendimiento de la base de datos mediante snapshots tomados en distintos momentos del tiempo. Estos datos se almacenan en tablas y luego pueden compararse para generar reportes.
Con Statspack puedes:
Analizar el consumo de CPU, I/O y memoria.
Detectar cuellos de botella en el sistema.
Identificar las sentencias SQL más costosas.
Evaluar la carga de trabajo en distintos horarios.
Tener un historial de rendimiento para análisis posteriores.
En la práctica, Statspack es muy útil para:
Diagnosticar problemas de performance.
Comparar periodos “buenos” y “malos” de la base de datos.
Apoyar decisiones de tuning o capacidad.
Statspack como alternativa sin costo adicional
Una de las grandes ventajas de Statspack es que no requiere licencias adicionales para su uso. Viene incluido con la instalación estándar de Oracle y puede ser utilizado sin activar packs licenciados.
A diferencia de AWR (Automatic Workload Repository), que forma parte del Diagnostics Pack y requiere licenciamiento, Statspack:
Está disponible en cualquier edición de Oracle.
No implica costos extra.
Permite obtener estadísticas históricas de rendimiento.
Si bien no ofrece todas las funcionalidades avanzadas de AWR (como ASH o reportes automáticos más completos), Statspack entrega información suficiente para realizar un análisis efectivo del rendimiento, especialmente en ambientes donde se busca optimizar costos.
Por esta razón, sigue siendo ampliamente utilizado en muchas organizaciones.
Requisitos previos
Antes de instalar Statspack, asegúrate de contar con:
Acceso como usuario SYSDBA.
Un tablespace disponible para almacenar la información (por ejemplo SYSAUX, Perfstat o uno dedicado).
Espacio suficiente en disco.
Acceso al directorio: $ORACLE_HOME/rdbms/admin
¿Cómo instalar Statspack en Oracle?
Conéctate a la base de datos como SYS:
sqlplus / as sysdba
2. Ejecuta el script de creación:
@?/rdbms/admin/spcreate.sql
Durante la ejecución de este script:
Se crea el usuario PERFSTAT, que será el dueño del esquema donde se almacenan todas las estadísticas de Statspack.
El sistema te pedirá que ingreses y confirmes una contraseña para el usuario PERFSTAT.
Luego solicitará los tablespaces para datos e índices donde se crearán las tablas de Statspack.
Es importante definir una contraseña segura, ya que sin ingresarla correctamente la instalación fallará.
Al finalizar, el script creará todas las tablas, vistas y sinónimos necesarios para que Statspack quede operativo.
Ejemplo de la ejecución del script:
Creación del usuario de base de datos propietario de los objetos generados durante la instalación de Statspack:
En el siguiente paso se define el tablespace donde se almacenarán los objetos creados durante la instalación; si se desea usar uno personalizado, debe estar creado previamente.
A continuación, se define el tablespace temporal que utilizará el usuario propietario de statpack:
El tablespace temporal es utilizado por Oracle para operaciones intermedias como ordenamientos (ORDER BY), agrupaciones (GROUP BY) y creación de índices. Durante la instalación y el uso de Statspack, estas operaciones pueden requerir espacio temporal, por lo que es importante contar con un tablespace temporal disponible y con espacio suficiente para evitar errores durante el proceso.
Luego de esto statpack procederá a instalarse.
¿Cómo verificamos que statpack se instaló?
Puedes validar que la instalación se haya realizado correctamente ejecutando la siguiente consulta:
SELECT COUNT(*) FROM perfstat.stats$snapshot;
Si la consulta se ejecuta sin errores y retorna un resultado (aunque sea 0 filas en una instalación recién creada), significa que:
El usuario PERFSTAT fue creado correctamente.
Las tablas de Statspack existen en el esquema.
La base de datos ya está lista para comenzar a generar snapshots.
¿Qué estamos haciendo en este paso?
En este paso estamos consultando la tabla stats$snapshot, que es una de las tablas principales de Statspack y donde se almacenan los snapshots de rendimiento. Si la tabla existe y es accesible, confirmamos que los objetos fueron creados correctamente durante la instalación. Al inicio es normal que el conteo sea 0, ya que aún no se han generado snapshots. Una vez que Statspack comience a ejecutarse, este valor irá aumentando.
Configurar snapshots automáticos
Para que Statspack tome snapshots de forma periódica, ejecutamos:
@?/rdbms/admin/spauto.sql
Este script crea un job que, por defecto, genera snapshots cada 60 minutos.
También podemos tomar snapshots manuales en cualquier momento:
EXEC perfstat.statspack.snap;
Esto podría ser útil por ejemplo, antes y después de un periodo de alta carga.
Generar un reporte Statspack
Una vez que existen snapshots, podemos generar un reporte con:
@?/rdbms/admin/spreport.sql
El script nos pedirá:
El snapshot inicial.
El snapshot final.
Luego se generará un archivo con el reporte, que podrás revisar para analizar el rendimiento entre ambos puntos. (En este caso, al tratarse de una instalación reciente, solo existe el snapshot con ID 1.)
¿Qué sigue después de instalarlo?
Con Statspack ya operativo, el siguiente paso es aprender a interpretar el reporte:
qué secciones revisar primero,
cómo identificar cuellos de botella,
y cómo detectar SQL problemáticas.
En un próximo artículo profundizaremos en cómo leer un reporte Statspack de forma rápida y efectiva, enfocándonos en las secciones más importantes para el día a día de un DBA.
Conclusión
Statspack sigue siendo una herramienta muy valiosa para el análisis de rendimiento en Oracle, especialmente en entornos donde no se cuenta con licencias avanzadas de diagnóstico. Su facilidad de implementación y su enfoque en estadísticas históricas lo convierten en una solución práctica y costo-efectiva para DBAs y equipos de TI.
En Datactiva acompañamos a nuestros clientes en la instalación, monitoreo y optimización de sus plataformas de bases de datos, ayudándolos a detectar problemas de rendimiento y a asegurar la continuidad operacional de sus sistemas críticos.
👉 Si necesitas apoyo en el análisis de performance de tus bases de datos Oracle, no dudes en contactarnos gestion@datactiva.cl.