Comme l'a mentionné Kaboing, MAXDOP(n)
contrôle en fait le nombre de cœurs de CPU utilisés dans le processeur de requêtes.
Sur un système complètement inactif, SQL Server tentera de tirer les tables en mémoire aussi rapidement que possible et de les joindre en mémoire. Il se peut que, dans votre cas, il soit préférable d'effectuer cette opération avec un seul processeur. Cela pourrait avoir le même effet que d'utiliser OPTION (FORCE ORDER)
qui force l'optimiseur de requêtes à utiliser l'ordre des jointures que vous avez spécifié. Dans certains cas, j'ai vu OPTION (FORCE PLAN)
réduire une requête de 26 secondes à 1 seconde de temps d'exécution.
Books Online poursuit en disant que les valeurs possibles pour MAXDOP
sont :
0 - Utilise le nombre réel de CPU disponibles en fonction de la charge de travail actuelle du système. Il s'agit de la valeur par défaut et du paramètre recommandé.
1 - Supprime la génération de plans parallèles. L'opération sera exécutée en série.
2-64 - Limite le nombre de processeurs à la valeur spécifiée. Un nombre inférieur de processeurs peut être utilisé en fonction de la charge de travail actuelle. Si une valeur supérieure au nombre de processeurs disponibles est spécifiée, le nombre réel de processeurs disponibles est utilisé.
Je ne suis pas sûr de la meilleure utilisation de MAXDOP
Cependant, je dirais que si vous avez une table avec 8 partitions, vous voudriez spécifier MAXDOP(8)
en raison des limitations d'E/S, mais je peux me tromper.
Voici quelques liens rapides que j'ai trouvés sur MAXDOP
:
Livres en ligne : Degré de parallélisme
Directives générales à utiliser pour configurer l'option MAXDOP
1 votes
Vous devez inclure la version et le service pack du serveur SQL. Ce problème peut avoir été corrigé dans une version ultérieure...