Skip to content

Identificar paralelismo en SQL Server

Cuando realizamos consultas en nuestras bases de datos, nuestro motor puede decidir si es mejor trabajar en modo paralelo o en modo serial. Esta decisión puede ser determinante en el rendimiento y en los tiempos de respuesta, por lo que es muy importante que puedas comprender el paralelismo en el servidor. Luego de esto vamos a identificar paralelismo en SQL Server.


¿Cómo sabemos que una consulta se ejecuta en paralelo?

No hay nada más fácil que verlo en el plan de ejecución.

En la imagen podemos ver al componente principal que nos muestra que una consulta fue ejecutada con diferentes threads (hilos).

identificar-paralelismo-en-sql-server

Además de los objetos enmarcados, puedes notar que algunos componentes tienen un pequeño símbolo con dos flechas. Cuando las consultas son ejecutadas en serie, estos símbolos no aparecerán.


Otra información interesante

Si seleccionamos en el plan de ejecución al componente Clustered Index Scan, podremos ver datos adicionales en sus propiedades. Solamente basta con un click en el componente.

Y ver más detalles en el área de Propiedades.

(Si no puedes ver el área de Propiedades, sobre el componente seleccionado dale un click derecho y selecciona ‘Propiedades’).

Quiero hacer énfasis en un dato particular. El cómo se distribuye la carga en los diferentes hilos con los que trabaja este paralelismo. Fíjate en la cantidad de registros que recorre el Índice Clustered.

De las 60398 filas que se lee en esta consulta, es evidente la distribución entre los hilos 1, 2, 3, 4 para su procesamiento.

Aquí el dato más importante. Podemos identificar el nivel de paralelismo utilizado. Podemos pensar que el servidor tiene un valor Max Degree of Parallelism igual a 4, lo que quiere decir, que podríamos utilizar hasta cuatro cores para una consulta. O también podríamos pensar que este valor está en 0 (por defecto para usar todos los procesadores), considerando que tenemos solamente 4 cores en nuestro servidor.


¿Para qué identificar paralelismo en SQL Server?

Para ver si esto está o no afectando en tu rendimiento. Ya lo habíamos dicho en un artículo anterior, no podemos catalogar al paralelismo como bueno o malo. Sin embargo, es importante identificar dónde puede estar causando algún problema.

El trabajo del paralelismo tiene asociado un tipo de espera en los wait stats. Para esto, puedes leer respecto a Cómo afecta CXPACKET en SQL Server en el enlace señalado.

www.datoptim.com
I love working on SQL Server Performance Tuning and finding the origin of the problems. Music and SQL Server passionate.

Carrito
Volver arriba