
Qué es un Query Store en SQL Server
Query Store en SQL Server, para empezar, quiero destacar una de mis características favoritas de los últimos tiempos: el Query Store en SQL Server. Esta herramienta nació con el objetivo de facilitar el monitoreo y la solución de problemas en nuestras consultas y ha evolucionado significativamente en las últimas versiones. Veamos en detalle qué es Query Store en SQL Server.
Introducción al Query Store
Query Store se introdujo en SQL Server 2016 para implementaciones on-premise y ha sido fundamental en Azure desde 2015, contribuyendo a muchas mejoras en el motor de base de datos. Este almacén recopila automáticamente las consultas, planes de ejecución y estadísticas de tiempo de ejecución para su análisis. Una de sus grandes ventajas es permitirnos ver si un plan de ejecución ha cambiado con el tiempo.
Datos proporcionados por Query Store
Una vez activado, Query Store comienza a capturar información sobre tus consultas, permitiéndote ver datos estadísticos que identifican las consultas más pesadas, aquellas con cambios en su comportamiento, las que más recursos consumen, y otra información relevante.
Por ejemplo, en el reporte «Top Resource Consuming Queries», puedes ver una gráfica con el historial de las consultas con mayor tiempo de ejecución. Al colocar el cursor sobre las barras, obtienes detalles sobre su duración en milisegundos o la cantidad de veces que se han ejecutado. Además, puedes ver los cambios en los planes de ejecución a lo largo del tiempo y el plan de ejecución específico correspondiente a la consulta seleccionada.
Análisis de cambios en los planes de ejecución
El plan de ejecución de una consulta puede variar debido a cambios en las estadísticas de los datos o modificaciones en las estructuras como los índices. Query Store permite monitorear estos cambios y evaluar su impacto. Por ejemplo, al analizar una consulta específica, puedes ver que inicialmente se ejecuta mediante un Clustered Index Scan y, posteriormente, a través de un NonClustered Index Seek con un Key Lookup, lo que reduce el esfuerzo de ejecución.
Beneficios del uso de Query Store
Query Store es una herramienta esencial para observar cómo se comporta una consulta en diferentes escenarios y a lo largo del tiempo. Te permite identificar y solucionar problemas de rendimiento de manera más eficaz, optimizando así el funcionamiento de tus bases de datos.
Consideraciones adicionales
Es recomendable utilizar siempre la versión más reciente de SQL Server Management Studio para aprovechar todas las funcionalidades de Query Store. No existe una configuración estándar para todos los casos; debes evaluar tu flujo de trabajo para crear una línea base adecuada a tus necesidades.
Activación y Configuración de Query Store en SQL Server

Activar Query Store en SQL Server es un proceso sencillo, pero es importante asegurarse de que esté configurado correctamente para maximizar sus beneficios. A continuación, se describen los pasos para activar y configurar Query Store en una base de datos on-premise:
- Acceder a las Propiedades de la Base de Datos:
- Abre SQL Server Management Studio (SSMS).
- Haz clic derecho en la base de datos en la que deseas activar Query Store.
- Selecciona «Propiedades».
- Configuración de Query Store:
- En el cuadro de diálogo de propiedades de la base de datos, selecciona la página «Query Store».
- Configura los parámetros según tus necesidades. Algunas configuraciones clave incluyen:
- Operation Mode (Modo de Operación): Selecciona «Read Write» para permitir la captura de datos.
- Data Flush Interval (Intervalo de Vaciado de Datos): Configura la frecuencia con la que los datos se escriben en disco.
- Statistics Collection Interval (Intervalo de Recopilación de Estadísticas): Determina la frecuencia de recopilación de estadísticas.
- Max Size (Tamaño Máximo): Establece el tamaño máximo de almacenamiento para Query Store.
Monitoreo y Análisis con Query Store
Una vez que Query Store está activado y configurado, puedes comenzar a monitorear y analizar el rendimiento de las consultas. Aquí se presentan algunas de las principales capacidades de análisis que ofrece Query Store:
- Identificación de Consultas con Alto Consumo de Recursos:
- Utiliza los reportes integrados para identificar las consultas que consumen más recursos. El reporte «Top Resource Consuming Queries» muestra las consultas que más impactan en el rendimiento de la base de datos.
- Comparación de Planes de Ejecución:
- Query Store permite comparar los planes de ejecución de una consulta en diferentes momentos. Esto es útil para detectar cambios en el comportamiento de las consultas y entender cómo los cambios en los datos o en la configuración del sistema afectan el rendimiento.
- Detección de Regresiones de Rendimiento:
- Con Query Store, puedes detectar regresiones de rendimiento cuando una consulta que anteriormente se ejecutaba rápidamente comienza a ejecutarse lentamente. Esto te permite identificar y solucionar problemas antes de que afecten significativamente a los usuarios.
Ejemplo Práctico: Análisis de una Consulta
Para ilustrar el uso de Query Store, consideremos un ejemplo práctico:
- Acceder al Reporte «Top Resource Consuming Queries»:
- En SSMS, navega a la base de datos donde está activado Query Store.
- Ve a «Query Store» en el Explorador de Objetos y selecciona «Top Resource Consuming Queries».
- Interpretar los Datos:
- En la sección izquierda del reporte, verás una gráfica que muestra el historial de las consultas con mayor tiempo de ejecución.
- Al colocar el cursor sobre una barra vertical, puedes ver la duración de la consulta en milisegundos y la cantidad de ejecuciones.
- Analizar Cambios en los Planes de Ejecución:
- En la sección derecha del reporte, observa los cambios en los planes de ejecución a lo largo del tiempo.
- Si una consulta ha tenido múltiples planes de ejecución, verás círculos que indican diferentes Plan Ids.
- Al seleccionar un Plan Id, puedes ver el plan de ejecución correspondiente en la parte inferior del reporte.
Mejoras Continuas y Consideraciones
Query Store es una herramienta poderosa que no solo facilita el monitoreo y análisis de consultas, sino que también te ayuda a mejorar el rendimiento general de tu base de datos. Aquí hay algunas consideraciones adicionales para su uso eficaz:
- Mantén el Query Store Limpio:
- Configura políticas de retención para evitar que Query Store consuma demasiado espacio en disco. Esto incluye la eliminación automática de datos antiguos que ya no son relevantes.
- Monitorea el Impacto en el Rendimiento:
- Aunque Query Store es extremadamente útil, es importante monitorear su impacto en el rendimiento del servidor. Ajusta las configuraciones según sea necesario para equilibrar la recopilación de datos y el rendimiento general del sistema.
- Capacitación Continua:
- Participa en webinars y entrenamientos para mantenerte actualizado con las últimas funcionalidades y mejores prácticas de Query Store. Esto te permitirá aprovechar al máximo esta herramienta en constante evolución.
Insertar Varias Filas en SQL Server: Simplifica tu Trabajo
Comando Read Linux: Cómo Hacer Peticiones al Usuario en Scripting
Script para saber el histórico de queries ejecutados SQL
Guía Completa para Implementar FULLTEXT en SQL
¿Qué es el Transaction Log? La Importancia en SQL Server
Cuentos de miedo para Informáticos: Historias de terror para informáticos