Como se menciona en Kaboing, MAXDOP(n)
realmente controla la cantidad de núcleos de CPU que se utilizan en el procesador de consultas.
En un sistema completamente inactivo, SQL Server intentará colocar las tablas en la memoria lo más rápido posible y unirlas en la memoria. Podría ser que, en tu caso, es mejor hacer esto con una sola CPU. Esto puede tener el mismo efecto que usar OPTION (FORCE ORDER)
, lo que obliga al optimizador de consultas a usar el orden de las uniones que ha especificado. En algunos casos, he visto OPTION (FORCE PLAN)
reducir una consulta de 26 segundos a 1 segundo de tiempo de ejecución.
Libros en pantalla se enciende decir que los posibles valores para MAXDOP
son:
0 - Utiliza el número real de CPU disponibles en función de la carga de trabajo actual del sistema. Este es el valor predeterminado y la configuración recomendada.
1 - Suprime la generación de planes paralelos. La operación se ejecutará en serie.
2-64 - Limita el número de procesadores al valor especificado. Se pueden usar menos procesadores dependiendo de la carga de trabajo actual. Si se especifica un valor mayor que la cantidad de CPU disponibles, se usa la cantidad real de CPU disponibles.
No estoy seguro de cuál es el mejor uso de MAXDOP
es, sin embargo me gustaría tomar una conjetura y decir que si usted tiene una mesa con 8 particiones, que se quiere especificar MAXDOP(8)
debido a la E/S limitaciones, pero podría estar equivocado.
Éstos son algunos enlaces rápidos que he encontrado sobre MAXDOP
:
Books Online: Degree of Parallelism
General guidelines to use to configure the MAXDOP option
Debe incluir la versión y el paquete de servicio del servidor SQL. Esto puede haber sido resuelto en una versión posterior ... –