Bit - loader

SQL Server 2016 (III): Live Query Statistics

   Artículo | Microsoft SQL Server 2016 Bit - SQL Server 2016 (III): Live Query Statistics
Xavier Saladié | 02/09/16

Como ya sabéis, en esta serie de artículos sobre SQL Server 2016, estamos analizando con detalle las principales nuevas funcionalidades (podéis ver los anteriores aquí y aquí). Hoy es el turno de los planes de ejecución y lo que llamamos Live Query Statistics.

Seguro que la mayoría de vosotros habéis utilizado los planes de ejecución para ver cuál es la secuencia de acciones que SQL Server lleva a cabo al ejecutar una sentencia. Son tremendamente útiles para detectar cuellos de botella y, nos permiten saber dónde perdemos más tiempo de manera muy gráfica y bastante precisa.

Con la introducción de SQL Server 2016 Management Studio disponemos de una posibilidad adicional, la de visionar los planes con detalles en tiempo real a medida que la sentencia se está ejecutando con Live Query Statistics. Esta funcionalidad también está disponible contra motores de SQL Server 2014 pero siempre desde Management Studio 2016.

El funcionamiento no puede ser más sencillo, activando el botón en la barra del editor de consultas, en cuanto ejecutemos cualquier sentencia accederemos a una pestaña adicional en la que podremos contemplar cómo, en vivo y en directo, los diferentes elementos del plan de ejecución se van completando.

Para poder mostrarlo lo primero que necesitamos es una consulta pesada, por ejemplo, ésta en la base de datos AdventureWorks:

 

Base de datos AdventureWorks

 

La primera tabla consta de 113.000 registros de los que 2.844 cumplen la condición sobre Quantity, la segunda tabla de 90.000, de ellos 4.756 son por una Quantity de 5 unidades. Combinadas con la cláusula JOIN se genera una respuesta con 13,5 millones de registros en unos 2 minutos y medio.
Ejecutando la consulta, al cabo de unos pocos segundos podremos observar algo parecido a lo siguiente:

 

Live Query Statistics 27%

 

Las líneas discontinuas (se muestran animadas) indican que la tarea se está llevando a cabo y la información al pie de cada icono detalla el progreso porcentual de la tarea en cuestión junto con el número actual de registros procesados y el número de registros estimados.

Esta información puede resultar muy valiosa para analizar con mayor facilidad cuales son los puntos en la ejecución de la consulta en los que el tiempo invertido es mayor, a la vez que nos permite visualizar cuál es el orden de ejecución de las diferentes partes de la consulta.

A medida que las actividades se van completando las líneas discontinuas se convierten en las flechas tradicionales.

 

Live Query Statistics 99%

 

Y al terminar la ejecución tendremos una visión muy similar a la del plan de ejecución tradicional mostrándonos la información del tiempo total invertido en cada actividad, así como el número de registros real y estimado.

 

Live Query Statistics completada

Live Query Statistics completado

 

Plan de ejecución tradicional

Plan de ejecución tradicional

 

Para consultas con poco coste en términos de tiempo esta información es innecesaria y rara vez la utilizaremos ya que lo que vamos a visualizar va a ser, esencialmente, el plan de ejecución estático. Pero si la consulta toma su tiempo, puede ser muy interesante para ver cómo se está comportando sobre la marcha sin tener que esperar hasta el final de la ejecución. Podéis pensar que el plan de ejecución estimado está en la misma línea, pero ¿cuántas veces habéis encontrado un plan estimado que difería del real?

Seguro que tenéis alguna consulta en producción a la que le podéis aplicar esta nueva funcionalidad para ver como evoluciona. Si os apetece probarlo con una consulta más pesada podéis eliminar la condición y tendréis por delante 60 minutos hipnóticos con líneas animadas.

 


Entradas relacionadas

Cursos relacionados
Nuestro sitio utiliza cookies para análisis. Si no estás seguro de ello, echa un vistazo a nuestra política de privacidad.