DetailPage-MSS-KB

Base de connaissances

Numéro d'article: 2806535 - Dernière mise à jour: vendredi 1 mai 2015 - Version: 3.0

 

Sommaire

Résumé

L'option de configuration degré max. de parallélisme (MAXDOP) de Microsoft SQL Server 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 threads qui sont utilisés pour les opérateurs de plan de requête qui effectuent le travail en parallèle. Selon si SQL Server est configuré sur un ordinateur SMP (symmetric multiprocessing), un ordinateur mémoire non uniforme (NUMA) ou processeurs hyperthreading activé, vous devez configurer l'option degré maximal de parallélisme de manière appropriée. Cet article décrit les instructions générales que vous pouvez utiliser pour configurer l'option degré maximal de parallélisme de SQL Server lorsque vous utilisez la procédure stockée système sp_configure .

Les indicateurs de requête OPTION (MAXDOP) Transact-SQL peuvent remplacer l'option degré maximal de parallélismedans la valeur desp_configure si la requête spécifie cette option. Dans SQL Server 2000, le remplacement prend effet uniquement si la valeur qui 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 les 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 gouverneur de ressources. Toutes les règles sémantiques utilisées avec l'option degré max. de parallélismesont applicables lorsque vous utilisez l'indicateur de requête MAXDOP. Les deux autres options qui peuvent remplacer ou qui affectent le paramètre MAXDOP sont comme suit :
  • Soft NUMA
  • Index en parallèle

Plus d'informations

Remarque L'option de configuration degré max. de parallélismene limite pas le nombre de processeurs que SQL Server utilise. Pour configurer le nombre de processeurs qui utilise SQL Server, utilisez l'option de configuration masque d'affinité .

Utilisez les instructions suivantes lorsque vous configurez le MAXDOPvalue.

SQL Server 2005 et versions ultérieures

Réduire ce tableauAgrandir ce tableau
Serveur avec nœud NUMAMoins de 8 processeurs logiquesConserver MAXDOP à ou en dessous # de processeurs logiques
Serveur avec nœud NUMAPlus de 8 processeurs logiquesConservez MAXDOP 8
Serveur avec plusieurs nœuds NUMAMoins de 8 processeurs logiques par nœud NUMAConserver MAXDOP à ou en dessous # de processeurs logiques par nœud NUMA
Serveur avec plusieurs nœuds NUMAPlus de 8 processeurs logiques par nœud NUMAConservez MAXDOP 8



Remarque
utilisez les mêmes indications lorsque vous définissez l'option degré maximal de parallélismepour le gouverneur de ressources, groupes de charges de travail.

En outre, la valeur maximale de 8 qui est mentionnée dans le présent encadrement est applicable pour l'activité de SQL Server standard et la charge pour les opérateurs d'échange qui sont utilisées dans les plans de requêtes en parallèle. Vous pouvez modifier cette valeur maximale, en fonction de vos habitudes d'application spécifique et l'activité simultanée sur l'instance de SQL Server. Par exemple, considérons les situations suivantes :
  • Si vous disposez de très peu 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 utilisez doit être testée par rapport à l'activité d'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 antérieures

Si SQL Server utilise un plan en série, il utilisera un seul processeur. Cependant, si SQL Server utilise un parallélisme, il doit utiliser tous les processeurs (tel que déterminé par la configuration d'indicateur de requête MAXDOP) configurés 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 les 7 processeurs peuvent effectuer le travail plus efficacement par rapport à un plan en série qui utilise seulement un processeur. En raison de ce comportement de type 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épasse les avantages de l'utilisation d'un plan parallèle.

Le paramètre MAXDOP s'applique à chaque étape du plan. Chaque étape utilise un seul processeur ou le nombre d'UC qui est spécifié par MAXDOP et jamais rien entre les deux. Si les étapes s'exécutent 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 « Degré max. 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 du processeur de requête » dans la documentation en ligne de SQL Server.

AdditionalInformation

Pour plus d'informations sur les requêtes parallèles, accédez au site Web de Microsoft Developer Network (MSDN) suivant :
Degré de parallélisme (http://msdn.microsoft.com/en-us/library/ms188611.aspx )
Pour les meilleures pratiques relatives lorsque vous exécutez une instance de SQL Server sur les ordinateurs qui ont 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  (http://support.microsoft.com/kb/322385/ ) Prise en charge de SQL Server dans un environnement hyper-thread
Remarque Cette recommandation peut ne pas concerne plus récent processeur chips, tels que ceux 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 le sys.dm_os_nodes et le sys.dm_os_sys_info de vues de gestion dynamique. Pour plus d'informations sur le paramètre MAXDOP qui est appliqué à l'aide du gouverneur de ressources, consultez les informations dans la sys.dm_resource_governor_workload_groups de vue de gestion dynamique et de la publication suivante sur le blog de l'équipe de prise en charge de SQL Server :

Paramètre de serveur « Degré max. de parallélisme », du gouverneur de ressources MAX_DOP et indicateur de requête un MAXDOP – ce qui devrait de SQL Server utilisent ? (http://blogs.msdn.com/b/psssql/archive/2015/04/28/server-s-max-degree-of-parallelism-setting-resource-governor-s-max-dop-and-query-hint-maxdop-which-one-should-sql-server-use.aspx)

Pour plus d'informations sur les produits ou les outils automatiquement vérifier 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èglesTitre de la règleDescription de la règleVersions du produit par rapport à laquelle la règle est évaluée.
SQL Server 2008 R2 Best Practice Analyzer (SQL Server 2008 R2 BPA)Degré de parallélisme n'est pas définie à la valeur recommandéeSQL Server 2008 R2 Best Practice Analyzer (BPA SQL Server 2008 R2) fournit une règle pour détecter ces conditions où la valeur appropriée pour l'option degré maximal de parallélismen'est pas configurée avec le nombre d'UC dans un nœud NUMA, ainsi que la configuration de la charge de travail gouverneur de ressources pour MAXDOP. Le 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 rencontrez un avertissement « Moteur de base de données - degré de parallélisme est non défini à la valeur recommandée », comparez la valeur de l'optiondegré maximal de parallélismeet de la valeur MAXDOP de la charge de travail de gouverneur de ressources avec les valeurs recommandées sont spécifiées dans les sections « Résumé » et « Informations supplé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 à 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 l'option degré maximal de parallélismen'est pas configurée avec le nombre d'UC dans un nœud NUMA, ainsi que la configuration de la charge de travail gouverneur de ressources pour MAXDOP.

Si vous exécutez l'outil BPA et rencontrez un avertissement « Moteur de base de données - degré de parallélisme est non défini à la valeur recommandée », comparez la valeur de l'optiondegré maximal de parallélismeet de la valeur MAXDOP de la charge de travail de gouverneur de ressources avec les valeurs recommandées sont spécifiées dans les sections « Résumé » et « Informations supplémentaires ».
SQL Server 2012

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
  • Microsoft SQL Server 2014 Business Intelligence
  • Microsoft SQL Server 2014 Developer
  • Microsoft SQL Server 2014 Enterprise
  • Microsoft SQL Server 2014 Enterprise Core
  • Microsoft SQL Server 2014 Express
  • Microsoft SQL Server 2014 Standard
  • Microsoft SQL Server 2014 Web
Mots-clés : 
kbinfo kbmt KB2806535 KbMtfr
Traduction automatiqueTraduction automatique
IMPORTANT : Cet article est issu d'une traduction automatique réalisée par un logiciel Microsoft et non par un traducteur professionnel. Cette traduction automatique a pu aussi être révisée par la communauté Microsoft grâce à la technologie Community Translation Framework (CTF). Pour en savoir plus sur cette technologie, veuillez consulter la page http://support.microsoft.com/gp/machine-translation-corrections/fr. Microsoft vous propose en effet des articles traduits par des professionnels, des articles issus de traductions automatiques et des articles issus de traductions automatiques révisées par la communauté Microsoft, de manière à ce que vous ayez accès à tous les articles de notre Base de connaissances dans votre langue. Il est important de noter que les articles issus de la traduction automatique, y compris ceux révisés par la communauté Microsoft, peuvent contenir des erreurs de vocabulaire, de syntaxe ou de grammaire. Microsoft ne pourra être tenu responsable des imprécisions, erreurs, ainsi que de tout dommage résultant d’une traduction incorrecte du contenu ou de son utilisation par les clients.
La version anglaise de cet article est la suivante: 2806535  (http://support.microsoft.com/kb/2806535/en-us/ )
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.
Partager
Options de support supplémentaire
Forums du support Microsoft Community
Nous contacter directement
Trouver un partenaire Microsoft Certified Partner
Microsoft Store