Cuándo realizar cambios en el umbral de costo para el paralelismo

10

Al examinar un problema de rendimiento, he visto una afluencia en CXPACKETS que sugiere que podría necesitar mirar el umbral de costo para el paralelismo y quizás el MAXDOP.

Antes de realizar cambios drásticos en MAXDOP, he seguido los consejos de muchos otros, incluido el de @mrdenny en la respuesta al ajuste de rendimiento de CXPACKET Waits para SQL Server 2008 y la respuesta de @ aron-Bertrand de Tratar con esperas de CXPACKET: establecer el umbral de costo para el paralelismo . He agregado al mantenimiento para actualizar las estadísticas por completo todas las noches. Esto se siente como un movimiento sensato.

Sin embargo, hacer modificaciones al umbral de costo sigue siendo algo que me molesta.

¿En qué punto se debe alterar el umbral de costo para el paralelismo? ¿Alguien tiene un ejemplo de dónde (después de examinar el costo de sus consultas y carga de trabajo) hicieron cambios a este costo?

Pide disculpas si esto es algo que ha sido respondido en una pregunta anterior.

¡Gracias!

the_good_pony
fuente

Respuestas:

3

Usar MAXDOP = 1 puede ser una ayuda, pero es una gran arma. Puede ser que el problema real sea la utilidad de los índices. Quizás un índice nuevo o diferente resolvería el problema.

Siguiendo los comentarios del Sr. Denny y Aaron Bertrand, ¿descubrió qué otras esperas a ese respecto probablemente fueron la causa de las esperas de CXPACKET?

Jonathan Kehayias sugirió una consulta que podría ayudarlo a evaluar su experiencia de paralelismo y tomar una decisión más reflexiva. Pero también deberías leer la conversación entre Jonathan y Paul White.

https://www.sqlskills.com/blogs/jonathan/tuning-cost-threshold-for-parallelism-from-the-plan-cache/

RLF
fuente
1

Te sugiero que primero busques en la configuración de MAXDOP ya que la configuración predeterminada de 0 (usar todos los hilos disponibles) puede ser peligrosa ya que una consulta fuera de control que consume todos los hilos disponibles conducirá a la falta de hilo.

Consulte mi respuesta aquí para saber cómo calcular la configuración de MAXDOP para su instancia de servidor.

El umbral de costo del paralelismo se refiere a cuál debe ser el costo mínimo de consulta antes de que el optimizador considere el paralelismo.

Recuerde que las esperas de CXPACKET son solo síntomas debido a que algo está mal relacionado con las estadísticas obsoletas de la consulta o el índice faltante que resulta en un plan incorrecto o diferente.

Puede usar sys.dm_exec_cached_plansy sys.dm_exec_query_planDMV para extraer información de la caché del plan como se describe en Tuning 'umbral de costo para paralelismo' del Plan Cache de Jonathan y Umbral de costo para paralelismo .

Sugeriría mantener el cost threshold for parallelismvalor predeterminado a menos que haya agotado los recursos para ajustar las consultas, realizar el mantenimiento de los índices y las estadísticas, así como comprobar si no le faltan índices para que su consulta pueda obtener beneficios.

Nota: La configuración de Maxdop también se puede aplicar en el nivel de consulta mediante el OPTION (MAXDOP n)cual anulará la configuración de todo el servidor.

Kin Shah
fuente