sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cuál es el propósito de usar OPCIÓN (MAXDOP 1) en SQL Server?

Como mencionó Kaboing, MAXDOP(n) en realidad controla la cantidad de núcleos de CPU que se utilizan en el procesador de consultas.

En un sistema completamente inactivo, SQL Server intentará extraer las tablas a la memoria lo más rápido posible y unirlas en la memoria. Puede ser que, en tu caso, lo mejor sea hacerlo con una sola CPU. Esto podría tener el mismo efecto que usar OPTION (FORCE ORDER) lo que obliga al optimizador de consultas a utilizar el orden de combinaciones 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.

Books Online continúa diciendo que los valores posibles para MAXDOP son:

0:utiliza la cantidad real de CPU disponibles según la carga de trabajo actual del sistema. Este es el valor predeterminado y la configuración recomendada.

1 - Suprime la generación de planes en paralelo. La operación se ejecutará en serie.

2-64:limita el número de procesadores al valor especificado. Es posible que se utilicen menos procesadores según la carga de trabajo actual. Si se especifica un valor mayor que el número de CPU disponibles, se utiliza el número real de CPU disponibles.

No estoy seguro de cuál es el mejor uso de MAXDOP es, sin embargo, adivinaría y diría que si tiene una tabla con 8 particiones, querrá especificar MAXDOP(8) debido a limitaciones de E/S, pero podría estar equivocado.

Aquí hay algunos enlaces rápidos que encontré sobre MAXDOP :

Libros en línea:Grado de paralelismo

Directrices generales a utilizar para configurar la opción MAXDOP