Recommandations et des instructions pour l'option de configuration « max degree of parallelism » dans SQL Server

Traductions disponibles Traductions disponibles
Numéro d'article: 2806535 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Résumé

Le Microsoft SQL Server max degree of parallelism Option de configuration (MAXDOP) contrôle le nombre de processeurs utilisés pour l'exécution d'une requête dans un plan parallèle. Cette option détermine les ressources informatiques et de thread sont utilisés pour les opérateurs de plan de requête qui effectuent le travail en parallèle. En fonction de si SQL Server est configuré sur un ordinateur SMP (symmetric multiprocessing), un non-uniform memory access (NUMA) ou processeurs hyperthreading activé, vous devez configurer le max degree of parallelism option de manière appropriée. Cet article décrit les orientations générales que vous pouvez utiliser pour configurer le max degree of parallelism option de SQL Server lorsque vous utilisez le système sp_configure de procédure stockée.

Les indicateurs de requête OPTION (MAXDOP) Transact-SQL peuvent substituer le max degree of parallelismoption de la valeur de sp_configure si la requête spécifie cette option. Dans SQL Server 2000, le remplacement prend effet uniquement si la valeur est spécifiée dans l'indicateur est inférieure ou égale à la valeur de sp_configure . Dans SQL Server 2005 et versions ultérieures, la substitution toujours effective. Dans SQL Server 2008 et versions ultérieures, si la valeur MAXDOP dépasse la valeur qui a été configurée à l'aide du gouverneur de ressources, le moteur de base de données utilise la valeur MAXDOP le gouverneur de ressources. Toutes les règles sémantiques utilisées avec la max degree of parallelismoption sont applicables lorsque vous utilisez l'indicateur de requête MAXDOP. Les deux autres options qui peuvent modifier ou affecter le paramètre MAXDOP sont comme suit :
  • Soft NUMA
  • Index en parallèle

Plus d'informations

Remarque : Le max degree of parallelism option de configuration est ne pas limiter le nombre de processeurs qui utilise SQL Server. Pour configurer le nombre de processeurs qui utilise SQL Server, utilisez la masque d'affinité option de configuration.

Utilisez les instructions suivantes lorsque vous configurez la valeur MAXDOP.

SQL Server 2005 et versions ultérieures

  • Pour les serveurs qui utilisent plus de huit processeurs, utilisez la configuration suivante :
    MAXDOP = 8
  • Pour les serveurs qui utilisent moins de huit processeurs, utilisez la configuration suivante :
    MAXDOP = 0 toN

    Remarque : Dans cette configuration,N représente le nombre de processeurs.
  • Pour les serveurs qui ont configuré de NUMA, MAXDOP ne doit pas dépasser le nombre de processeurs qui sont affectés à chaque n?ud NUMA.
  • Pour les serveurs qui ont l'hyperthreading est activée, la valeur MAXDOP ne doit pas dépasser le nombre de processeurs physiques.
  • Pour les serveurs qui ont NUMA configuré et activé la technologie hyperthreading, ne doit pas dépasser la valeur MAXDOP nombre de processeurs physiques par n?ud NUMA.
Remarque : Utilisez les mêmes indications lorsque vous définissez la max degree of parallelismoption pour les groupes de la charge de travail de gouverneur de ressources.

En outre, la valeur maximale de 8 qui est mentionnée dans ces lignes directrices est applicable pour l'activité de SQL Server classique et la charge pour les opérateurs d'échange qui sont utilisés dans les plans de requêtes en parallèle. Vous pouvez modifier cette valeur maximale, en fonction de vos modèles d'application spécifique et des activités simultanées sur l'instance de SQL Server. Par exemple, considérez les situations suivantes :
  • Si vous avez très petit nombre de requêtes qui s'exécutent en même temps comparé au nombre de processeurs, vous pouvez définir la valeur MAXDOP pour une plus grande valeur. Par exemple, vous pouvez définir la valeur MAXDOP à 16.
  • Si vous un très grand nombre de requêtes qui s'exécutent en même temps comparé au nombre de processeurs, vous pouvez définir la valeur MAXDOP à une valeur inférieure. Par exemple, vous pouvez définir la valeur MAXDOP à 4.
Remarque : Toute valeur que vous envisagez d'utiliser doit être testée par rapport à l'activité de l'application spécifique ou un modèle de requêtes avant d'implémenter cette valeur sur un serveur de production.

SQL Server 2000 et versions ultérieures

Si SQL Server utilise un plan en série, il utilisera un seul processeur. Toutefois, si SQL Server utilise le parallélisme, il doit utiliser tous les processeurs configurés (tel que déterminé par la configuration d'indicateur de requête MAXDOP) pour l'exécution d'un plan parallèle. Par exemple, si vous utilisez MAXDOP = 0 sur un serveur 32 voies, SQL Server tente d'utiliser tous les 32 processeurs même si 7 processeurs peuvent effectuer le travail plus efficacement par rapport à un plan en série qui utilise un seul processeur. C'est pourquoi tout ou rien, si SQL Server utilise le plan en parallèle, et si vous ne limitez pas l'indicateur de requête MAXDOP à une valeur maximale de 8, le temps requis par SQL Server afin de coordonner tous les processeurs sur un serveur haut de gamme dépassent les avantages de l'utilisation d'un plan parallèle.

Le paramètre MAXDOP s'applique à chaque étape du plan. Chaque étape utilise une unité centrale ou le nombre d'UC qui est spécifié par MAXDOP et jamais rien entre les deux. Si les étapes exécutées en parallèle, le nombre de threads utilisés par la requête peut dépasser le paramètre MAXDOP.

Pour la définition de MAXDOP, reportez-vous à la rubrique « Max degré de parallélisme Option » ou « Degré de parallélisme » dans SQL Server.

Pour comprendre le fonctionne de parallélisme, consultez la section « Traitement de requête parallèle » sous la rubrique « Architecture de processeur de requête » dans la documentation en ligne de SQL Server.

Plus d'informations

Pour plus d'informations sur les requêtes parallèles, accédez au site Web Microsoft Developer Network (MSDN) suivant :
Degré de parallélisme
Pour meilleures pratiques relatives lorsque vous exécutez une instance de SQL Server sur des ordinateurs dotés de plus de 64 processeurs, voir la rubrique documentation en ligne de SQL Server suivante :Pour les instances de SQL Server qui sont exécutent sur des processeurs hyperthreading activé, suivez les recommandations de l'article suivant dans la Base de connaissances Microsoft :
322385 Prise en charge de SQL Server dans un environnement hyper-thread
Remarque : Cette recommandation peut ne pas concerne plus récents processeur puces telles que celles de la famille Intel Nehalem.

Pour plus d'informations sur le nombre de processeurs utilisés par SQL Server et le nombre de n?uds NUMA qui sont reconnus par SQL Server, utilisez la gestion dynamique des vues sys.dm_os_sys_info et sys.dm_os_nodes. Pour plus d'informations sur le paramètre MAXDOP qui est appliquée à l'aide du gouverneur de ressources, consultez les informations dans le sys.dm_resource_governor_workload_groups de vue de gestion dynamique.

Pour plus d'informations sur les produits ou les outils de vérification automatique pour cette condition sur votre instance de SQL Server et sur les versions du produit SQL Server, consultez le tableau suivant :
Réduire ce tableauAgrandir ce tableau
Logiciel de règleTitre de la règleDescription de la règleVersions du produit par rapport à laquelle la règle est évaluée.
Best Practice Analyzer de SQL Server 2008 R2 (SQL Server 2008 R2 BPA)Degré de parallélisme n'est pas définie sur la valeur recommandéeSQL Server 2008 R2 Best Practice Analyzer (SQL Server 2008 R2 BPA) fournit une règle pour détecter ces conditions où la valeur appropriée pour la max degree of parallelismoption n'est pas configurée avec le nombre de processeurs dans un n?ud NUMA et également la configuration de la charge de travail de gouverneur de ressources pour MAXDOP. L'analyseur BPA de SQL Server 2008 R2 prend en charge SQL Server 2008 et SQL Server 2008 R2.

Si vous exécutez l'outil BPA et que vous rencontrez un message d'avertissement « Moteur de base de données - degré de parallélisme est non défini à la valeur recommandée », comparer lamax degree of parallelismvaleur d'option et la valeur MAXDOP gouverneur de ressources la charge de travail avec les valeurs recommandées sont spécifiées dans les sections « Résumé » et « Informations complémentaires ».
SQL Server 2008, SQL Server 2008 R2
SQL Server 2012 Best Practice Analyzer (BPA de SQL Server 2012)Degré de parallélisme n'est pas définie sur la valeur recommandéeSQL Server 2012 Best Practice Analyzer (BPA de SQL Server 2012) fournit une règle pour détecter ces conditions où la valeur appropriée pour max degree of parallelismoption n'est pas configurée avec le nombre de processeurs dans un n?ud NUMA et également la configuration de la charge de travail de gouverneur de ressources pour MAXDOP.

Si vous exécutez l'outil BPA et que vous rencontrez un message d'avertissement « Moteur de base de données - degré de parallélisme est non défini à la valeur recommandée », comparer lamax degree of parallelismvaleur d'option et la valeur MAXDOP gouverneur de ressources la charge de travail avec les valeurs recommandées sont spécifiées dans les sections « Résumé » et « Informations complémentaires ».
SQL Server 2012

Propriétés

Numéro d'article: 2806535 - Dernière mise à jour: mercredi 6 février 2013 - Version: 2.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Standard
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Express
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Express
  • Microsoft SQL Server 2008 R2 Express with Advanced Services
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Enterprise Evaluation
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Express with Advanced Services
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Express Edition with Advanced Services
  • Microsoft SQL Server 2000 Édition Entreprise
  • Microsoft SQL Server 2000 Enterprise Evaluation Edition
  • Microsoft SQL Server 2000 Standard
  • Microsoft SQL Server 2000 Édition Développeur
Mots-clés : 
kbinfo kbmt KB2806535 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 2806535
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com