1. Monitorea procesos SQL usando la vista SQL Process (2022.2+)
Puntos Clave
- SQL Runtime Statistics: Monitoreo siempre activo de rendimiento y ejecución de consultas SQL
- Tablas INFORMATION_SCHEMA: STATEMENTS, STATEMENT_DAILY_STATS, STATEMENT_HOURLY_STATS, y CURRENT_STATEMENTS
- Botón Query Test: Disponible desde SQL Statement Details para mostrar estadísticas de runtime
- Interfaz SQL del Management Portal: Proporciona rastreo y análisis completo de sentencias SQL
- Agregación de estadísticas: Tarea del sistema ejecuta cada hora para agregar estadísticas específicas de proceso en estadísticas globales
Notas Detalladas
Resumen
InterSystems IRIS proporciona capacidades completas de monitoreo de procesos SQL a través del sistema SQL Runtime Statistics.
- Siempre habilitado: No puede ser desactivado
- Alcance de monitoreo: Runtime de consulta, comandos ejecutados, filas retornadas, conteos de ejecución para sentencias SELECT, DDL, y DML
Tablas INFORMATION_SCHEMA
Las estadísticas de runtime SQL son visibles desde varias tablas INFORMATION_SCHEMA:
- STATEMENTS: Consultas en caché
- STATEMENT_DAILY_STATS / STATEMENT_HOURLY_STATS: Estadísticas agregadas
- STATEMENT_PARAMETER_STATS: Muestreo de parámetros (si está habilitado)
- CURRENT_STATEMENTS: Sentencias ejecutándose actualmente
Tiempo de Recolección de Estadísticas
- Las estadísticas se recolectan cuando una operación de consulta se prepara
- Escritas a intervalos establecidos para eficiencia
- Retraso: Puede tomar hasta 30 minutos ver estadísticas de runtime recientemente recolectadas
Interfaz del Management Portal
La interfaz SQL proporciona múltiples vistas para analizar Sentencias SQL:
Pestaña SQL Statements:
- Lista todas las sentencias en el namespace
- Columnas ordenables: Table/View/Procedure Names, Plan State, Location, SQL Statement Text, métricas de rendimiento (Average Time)
Vista SQL Statement Details:
- Botón Query Test muestra página SQL Runtime Statistics
Agregación de Estadísticas
- Tarea del sistema ejecuta automáticamente una vez por hora en todos los namespaces
- Agrega estadísticas de consulta SQL específicas de proceso en estadísticas globales
- Nota: Las estadísticas globales pueden no reflejar estadísticas recolectadas dentro de hora actual
Gestión de Estadísticas
- Las estadísticas de runtime pueden ser purgadas explícitamente
- Eliminar una tabla o vista automáticamente borra estadísticas de runtime SQL relacionadas
Referencias de Documentación
2. Recolecta y mantiene estadísticas de tabla usando TUNE TABLE
Puntos Clave
- Comando TUNE TABLE: Recolecta estadísticas basadas en datos representativos en la tabla
- Estadísticas recolectadas: Tamaño de map, tamaño de extent, y selectividad de campo para optimización de consulta
- Recompilación automática: Recompila consultas en caché cuando las estadísticas cambian significativamente
- Opciones de muestreo: %SAMPLE_PERCENT permite especificación de porcentaje de muestreo (predeterminado usa extent entero para tablas bajo 1000 filas)
- Requisitos de privilegio: Requiere privilegio administrativo %ALTER_TABLE y privilegio %ALTER sobre la tabla específica
Notas Detalladas
Resumen
El comando TUNE TABLE es una herramienta crítica para mantener rendimiento de consulta óptimo recolectando estadísticas de tabla basadas en datos representativos actualmente en la tabla.
Estadísticas Recolectadas
TUNE TABLE calcula y establece tres estadísticas clave:
- Tamaño de map: Organización de almacenamiento
- Tamaño de extent: Número de filas
- Selectividad para cada campo: Distribución de datos
Todas son esenciales para que el optimizador de consultas genere planes de ejecución eficientes.
Actualizaciones de Definición
- Actualiza tanto la definición de tabla SQL como comúnmente la definición de clase persistente correspondiente
- Las estadísticas son usadas por el optimizador de consultas sin requerir compilación de clase
- Para clases desplegadas: Solo actualiza definición de tabla SQL (el optimizador usa estadísticas de definición de tabla indirectamente)
Comportamiento de Consulta en Caché
- Cuando las estadísticas cambian: Recompila automáticamente todas las consultas en caché existentes referenciando la tabla
- Cuando las estadísticas no cambian: Las consultas en caché no se recompilan, evitando sobrecarga innecesaria
Opciones TUNE TABLE
- %SAMPLE_PERCENT: Especificar porcentaje de filas a muestrear (útil cuando valores atípicos no están distribuidos uniformemente)
- %CLEAR_VALUES: Limpiar estadísticas existentes
- %RECOMPILE_CQ: Para compatibilidad
Nota: Para tablas con tamaño de extent menor a 1000 filas, siempre se usa el extent entero independientemente del porcentaje de muestreo
Métodos de Ejecución
TUNE TABLE puede ejecutarse vía:
- Comando SQL
- Interfaz SQL del Management Portal dropdown Actions (para tablas únicas o esquemas enteros)
- Programáticamente usando método `$SYSTEM.SQL.Stats.Table.GatherTableStats()`
Requisitos de Privilegio
- %ALTER_TABLE: Privilegio administrativo (específico de namespace)
- %ALTER: Privilegio sobre la tabla específica
Referencias de Documentación
3. Usa estadísticas de runtime de Statement Index para identificar oportunidades de optimización
Puntos Clave
- Statement Index: Catálogo de todas las sentencias SQL con Query Plans y métricas de runtime
- Métricas de rendimiento: Tiempo promedio, conteo de ejecución, filas promedio retornadas, comandos promedio ejecutados
- Alternate Show Plans: Comparar múltiples opciones de plan de ejecución con análisis de costo y estadísticas
- Filtrado y ordenamiento: Reducir sentencias por esquema, tabla, rutina, o substring de texto; ordenar por cualquier columna
- Planes Frozen vs. Unfrozen: Controlar estabilidad de plan de consulta a través de gestión de estado de plan
Notas Detalladas
Resumen
El SQL Statement Index proporciona un catálogo completo para analizar y optimizar rendimiento de consulta SQL.
- Alcance: Rastrea todas las sentencias SQL ejecutadas en el namespace
- Contenido: Query Plans asociados y estadísticas de runtime
- Creación de entrada: Cuando una consulta se prepara por primera vez
Métricas de Rendimiento Clave
Cada entrada SQL Statement incluye:
- Average Time: Duración promedio de ejecución de consulta en segundos
- Run Count: Número de veces ejecutado
- Average Rows: Filas promedio retornadas
- Average Commands: Comandos promedio ejecutados
Acceso al Management Portal
El Statement Index es accesible a través de interfaz SQL del Management Portal vía pestaña SQL Statements:
- Lista sentencias en secuencia de collation por esquema y nombre de tabla/vista
- Muestra solo sentencias para las cuales el usuario actual tiene privilegios
Capacidades de Análisis
Ordenamiento de columna:
- Table/View/Procedure Names
- Plan State
- Location
- SQL Statement Text
- Métricas de rendimiento
Opciones de filtrado:
- Nombres de esquema
- Nombres de tabla
- Ubicaciones de rutina
- Substrings de texto
Identificación de Optimización
El Statement Index habilita identificación de oportunidades de optimización:
- Consultas lentas (ordenable por Average Time)
- Sentencias frecuentemente ejecutadas (ordenable por Run Count)
- Consultas con estados de plan ineficientes
Herramienta Alternate Show Plans
Proporciona análisis de optimización avanzado:
- Muestra múltiples planes de ejecución posibles para una consulta
- Cada plan muestra valor Cost para comparación relativa
- Estadísticas detalladas: Time, Global Refs, Commands, Read Latency para cada módulo
- Compare Show Plans with Stats: Comparación lado a lado con estadísticas reales o estimadas
Estados de Plan
Las Sentencias SQL pueden tener diferentes Plan States:
- Frozen: Plan de ejecución bloqueado (proporciona estabilidad para consultas de producción)
- Unfrozen: Puede ser optimizado
- Unfrozen/Parallel: Para consultas %PARALLEL
Referencias de Documentación
Resumen de Preparación para el Examen
Conceptos Críticos a Dominar:
- SQL Runtime Statistics: Comprender monitoreo siempre activo, tablas INFORMATION_SCHEMA, y tiempo de agregación de estadísticas
- Operaciones TUNE TABLE: Saber cuándo ejecutar TUNE TABLE, opciones de muestreo, y requisitos de privilegio
- Análisis de Statement Index: Dominar filtrado, ordenamiento, e identificación de oportunidades de optimización desde métricas de runtime
- Gestión de Query Plan: Comprender planes frozen vs. unfrozen y cuándo usar cada uno
- Métricas de Rendimiento: Memorizar métricas clave (Average Time, Run Count, Average Rows, Average Commands)
Escenarios Comunes de Examen:
- Identificar consultas lentas usando ordenamiento y filtrado de SQL Statement Index
- Determinar cuándo ejecutar TUNE TABLE sobre tablas con distribuciones de datos cambiantes
- Usar INFORMATION_SCHEMA.CURRENT_STATEMENTS para monitorear procesos SQL activos
- Comparar planes de ejecución alternos para seleccionar rendimiento óptimo de consulta
- Comprender intervalos de recolección de estadísticas y tiempo de agregación
Recomendaciones de Práctica Práctica:
- Consultar tablas INFORMATION_SCHEMA (STATEMENTS, CURRENT_STATEMENTS, STATEMENT_DAILY_STATS)
- Ejecutar TUNE TABLE con diferentes porcentajes de muestreo
- Usar pestaña SQL Statements del Management Portal para filtrar y ordenar sentencias
- Comparar Show Plans with Stats para consultas con múltiples planes de ejecución posibles
- Monitorear estadísticas de runtime SQL e identificar consultas necesitando optimización