Dashboards. Query Store en SQL Server (Parte III)

Hola a todos. Vamos a continuar conociendo la nueva herramienta de SQL Server 2016 Query Store. La anterior entrada, explicamos los parámetros de configuración. La podéis ver en el siguiente link: https://www.gpsos.es/2019/06/query-store-en-sql-server-introduccion-parte-ii/. En esta entrada vamos a ver cómo se pueden gestionar los datos guardados de consultas y planes de ejecución con los dashboards que ofrece Query Store. Esto nos aporta una herramienta gráfica que facilita enormemente la revisión y gestión de los planes de ejecución de las consultas, así como forzar planes si es necesario, etc.

Escenarios estudio consultas Query Store

Hay varias formas de abordar el estudio de la información almacenada en Query Store, aunque el Dashboard es igual para cualquiera de ellas.

  • Regressed Queries: En la ejecución de los procesos, el optimizador de consultas puede cambiar el plan de ejecución en base a operaciones que pueden ocurrir en los objetos sobre los que se basa para la elección del plan, como pueden ser un cambio de estadísticas, operaciones con índices, etc. Normalmente estos cambios mejoran la ejecución de las consultas, pero puede suceder el efecto contrario. Esto se conoce como regresión de cambio en la ejecución del plan.
  • Overall Resource Consumption: Se muestran las consultas con más consumo en tiempo de ejecución durante un periodo determinado
Dashboards Query Store. Overall Resource Consumption
  • Top Resource Consuming Queries: Se muestran las consultas con más consumos según el criterio seleccionado.
  • Queries With Forced Plans: Se muestran las consultas que se ejecutan habiendo forzado su plan de ejecución
  • Queries With High Variation: Se muestran las queries con mayor variación en los datos según el criterio seleccionado.
  • Tracked Queries: Se pueden especificar consultas concretas

Dashboards

El trabajo en cada uno de los dashboards es muy parecido. Por este motivo se puede aplicar la misma forma de trabajo para cada uno de ellos.

El dashboard se divide en tres ventanas.

Ventana superior izquierda

La ventana superior izquierda muestra una gráfica con las querys que cumplen con la métrica especificada, ordenada de mayor a menor. En la misma gráfica se pueden cambiar los valores de los Ejes X e Y, con unas opciones u otras dependiendo de la métrica seleccionada.

Las métricas que se pueden elegir son las siguientes:

Query Store Metrics

Si pasamos el ratón por encima de alguna de las barras de la gráfica, nos muestra información relevante sobre la consulta seleccionada. Ofrece datos como:

  • La duración total de las ejecuciones
  • El número de ejecuciones
  • Cuántos planes de ejecución distintos ha utilizado el optimizador y la query.

Además de la métrica, también se muestran datos estadisticos. Por defecto se utilizan los valores totales, pero se pueden mostrar el máximo y mínimo, la desviación estandar, etc.

En esta ventana también se muestran un número de botones para realizar operaciones, tales como refrescar los datos, enviar la query seleccionada al escenario de Tracked Queries, separar la query para hacerle un seguimiento más exhaustivo, etc.

Ventana superior derecha

La ventana superior derecha muestra una linea del tiempo con las apariciones de la query seleccionada en la ventana superior izquierda en el intervalo de tiempo determinado. Nos muestra la información con puntos, y pasando el cursor por encima de los puntos nos ofrece información sobre esa aparición concreta.

En este momento, se diferencian las apariciones de la query con sus planes de ejecución, diferenciando por colores los puntos cuando hay planes de ejecución distintos, y así ofreciendo una visión muy rápida de las diferencias.

En esta ventana hay botones también donde se puede configurar que una query utilice un plan de ejecución determinado, o que deje de utilizarlo, y varias opciones de presentación del plan de ejecución.

Ventana inferior

En la ventana inferior se muestra graficamente el plan de ejecución de la consulta seleccionada, de la forma general en la que lo muestra Management Studio.

En esta ventana también hay dos botones, para forzar el plan de ejecución mostrado a la query, o dejar de forzarlo si ya está forzado.

Se puede ampliar esta información en la documentación oficial de Microsoft sobre Query Store en el siguiente enlace:

https://docs.microsoft.com/es-es/sql/relational-databases/performance/query-store-usage-scenarios?view=sql-server-2017

En esta ocasión nos hemos centrado en los Dashboards pero en próximas entradas revisaremos las querys en las que podemos consultar la información en BBDD del Query Store

Esperamos que os sea de utilidad.

Un saludo,

Equipo de Base de datos