Configurer l'option de configuration de serveur max degree of parallelismConfigure the max degree of parallelism Server Configuration Option

S’APPLIQUE À : ouiSQL Server nonAzure SQL Database nonAzure SQL Data Warehouse nonParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Cette rubrique explique comment configurer l’option de configuration de serveur max degree of parallelism (MAXDOP) dans SQL Server 2017SQL Server 2017 à l’aide de SQL Server Management StudioSQL Server Management Studio ou de Transact-SQLTransact-SQL.This topic describes how to configure the max degree of parallelism (MAXDOP) server configuration option in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL. Lorsqu'une instance de SQL ServerSQL Server s'exécute sur un ordinateur doté de plusieurs microprocesseurs ou UC, elle détecte le degré de parallélisme, qui correspond au nombre de processeurs employés pour exécuter une seule instruction, pour chaque exécution d'un plan parallèle.When an instance of SQL ServerSQL Server runs on a computer that has more than one microprocessor or CPU, it detects the degree of parallelism, that is, the number of processors employed to run a single statement, for each parallel plan execution. Vous pouvez utiliser l'option max degree of parallelism pour limiter le nombre de processeurs à utiliser lors de l'exécution des plans parallèles.You can use the max degree of parallelism option to limit the number of processors to use in parallel plan execution. SQL ServerSQL Server prend en compte les plans d’exécution parallèle pour les requêtes, les opérations du langage de définition de données (DDL) d’index, les insertions parallèles, la modification de colonne en ligne, la collecte de statistiques parallèle et l’alimentation des curseurs statiques et de jeux de clés.considers parallel execution plans for queries, index data definition language (DDL) operations, parallel inserts, online alter column, parallel stats collection, and static and keyset-driven cursor population.

Avant de commencerBefore You Begin

Limitations et restrictionsLimitations and Restrictions

  • Si l'option affinity mask n'est pas définie sur la valeur par défaut, il est possible qu'elle limite le nombre de processeurs disponibles pour SQL ServerSQL Server sur les systèmes de multitraitement symétrique (SMP, symmetric multiprocessing).If the affinity mask option is not set to the default, it may restrict the number of processors available to SQL ServerSQL Server on symmetric multiprocessing (SMP) systems.

  • La limite du degré maximal de parallélisme (MAXDOP) est spécifiée par tâche.The max degree of parallelism (MAXDOP) limit is set per task. Il ne s’agit pas d’une limite par requête.It is not a per request or per query limit. Cela signifie que lors d’une exécution de requête parallèle, une requête unique peut générer plusieurs tâches qui sont affectées à un planificateur.This means that during a parallel query execution, a single request can spawn multiple tasks which are assigned to a scheduler. Pour plus d’informations, consultez le Guide de l’architecture des threads et des tâches.For more information, see the Thread and Task Architecture Guide.

RecommandationsRecommendations

  • Seul un administrateur de base de données qualifié ou un spécialiste agréé doit changer cette option avancée SQL ServerSQL Server.This option is an advanced option and should be changed only by an experienced database administrator or certified SQL ServerSQL Server professional.

  • Pour permettre au serveur de déterminer le degré maximal de parallélisme, définissez cette option sur 0, c'est-à-dire la valeur par défaut.To enable the server to determine the maximum degree of parallelism, set this option to 0, the default value. Attribuer la valeur 0 à l'option Degré maximal de parallélisme permet à SQL ServerSQL Server d'utiliser tous les processeurs disponibles, dans la limite de 64.Setting maximum degree of parallelism to 0 allows SQL ServerSQL Server to use all the available processors up to 64 processors. Pour supprimer la génération de plans parallèles, attribuez la valeur 1 à l'option Degré maximal de parallélisme .To suppress parallel plan generation, set max degree of parallelism to 1. Affectez la valeur à un nombre compris entre 1 et 32 767 pour spécifier le nombre maximal de noyaux de processeurs qui peuvent être utilisés par une seule exécution.Set the value to a number from 1 to 32,767 to specify the maximum number of processor cores that can be used by a single query execution. Si une valeur supérieure au nombre de processeurs disponibles est spécifiée, le nombre réel de processeurs disponibles est utilisé.If a value greater than the number of available processors is specified, the actual number of available processors is used. Si votre ordinateur est équipé d'un seul processeur, la valeur de l'option max degree of parallelism est ignorée.If the computer has only one processor, the max degree of parallelism value is ignored.

  • Vous pouvez remplacer la valeur de l'option max degree of parallelism dans les requêtes en spécifiant l'indicateur de requête MAXDOP dans l'instruction de requête.You can override the max degree of parallelism value in queries by specifying the MAXDOP query hint in the query statement. Pour plus d’informations, consultez Indicateurs de requête (Transact-SQL).For more information, see Query Hints (Transact-SQL).

  • Les opérations d'index destinées à créer ou à recréer un index, voire à supprimer un index cluster, peuvent nécessiter une quantité importante de ressources.Index operations that create or rebuild an index, or that drop a clustered index, can be resource intensive. Vous pouvez remplacer la valeur de l'option max degree of parallelism pour les opérations d'index en spécifiant l'option d'index MAXDOP dans l'instruction d'index.You can override the max degree of parallelism value for index operations by specifying the MAXDOP index option in the index statement. La valeur de MAXDOP est appliquée à l'instruction au moment de son exécution et n'est pas stockée dans les métadonnées de l'index.The MAXDOP value is applied to the statement at execution time and is not stored in the index metadata. Pour plus d’informations, consultez Configurer des opérations d’index parallèles.For more information, see Configure Parallel Index Operations.

  • En plus des requêtes et des opérations d'index, cette option gère également le parallélisme de DBCC CHECKTABLE, DBCC CHECKDB et DBCC CHECKFILEGROUP.In addition to queries and index operations, this option also controls the parallelism of DBCC CHECKTABLE, DBCC CHECKDB, and DBCC CHECKFILEGROUP. Vous pouvez désactiver les plans d'exécution parallèle pour ces instructions en utilisant l'indicateur de trace 2528.You can disable parallel execution plans for these statements by using trace flag 2528. Pour plus d’informations, consultez Indicateurs de trace (Transact-SQL).For more information, see Trace Flags (Transact-SQL).

Conseil

Pour définir cette option au niveau de la requête, utilisez l’indicateur de requête MAXDOP.To accomplish this at the query level, use the MAXDOP query hint.
Pour le faire au niveau de la base de données, utilisez la configuration étendue à la base de données MAXDOP.To accomplish this at the database level, use the MAXDOP database scoped configuration.
Pour ce faire, au niveau de la charge de travail, utilisez l’option de configuration de groupe de charges de travail Resource Governor MAX_DOP.To accomplish this at the workload level, use the MAX_DOP Resource Governor workload group configuration option.

InstructionsGuidelines

Avec SQL Server 2016 (13.x)SQL Server 2016 (13.x), lors du démarrage du service, si Moteur de base de donnéesDatabase Engine détecte plus de huit cœurs physiques par socket ou nœud NUMA au démarrage, des nœuds soft-NUMA sont créés automatiquement par défaut.Starting with SQL Server 2016 (13.x)SQL Server 2016 (13.x), during service startup if the Moteur de base de donnéesDatabase Engine detects more than eight physical cores per NUMA node or socket at startup, soft-NUMA nodes are created automatically by default. Moteur de base de donnéesDatabase Engine place les processeurs logiques du même cœur physique dans différents nœuds soft-NUMA.The Moteur de base de donnéesDatabase Engine places logical processors from the same physical core into different soft-NUMA nodes. Les recommandations contenues dans le tableau ci-dessous ont pour but de conserver tous les threads de travail d’une requête parallèle au sein du même nœud soft-NUMA.The recommendations in the table below are aimed at keeping all the worker threads of a parallel query within the same soft-NUMA node. Cela améliorera les performances des requêtes et la distribution des threads de travail entre les nœuds NUMA pour la charge de travail.This will improve the performance of the queries and distribution of worker threads across the NUMA nodes for the workload. Pour plus d’informations, consultez Soft-NUMA.For more information, see Soft-NUMA.

Depuis SQL Server 2016 (13.x)SQL Server 2016 (13.x), suivez les directives suivantes quand vous configurez la valeur de configuration de serveur max degree of parallelism :Starting with SQL Server 2016 (13.x)SQL Server 2016 (13.x), use the following guidelines when you configure the max degree of parallelism server configuration value:

Serveur avec un seul nœud NUMAServer with single NUMA node Inférieur ou égal à 8 processeurs logiquesLess than or equal to 8 logical processors Conserver MAXDOP à une valeur égale ou inférieure au nombre de processeurs logiquesKeep MAXDOP at or below # of logical processors
Serveur avec un seul nœud NUMAServer with single NUMA node Supérieur à 8 processeurs logiquesGreater than 8 logical processors Conservez MAXDOP à 8Keep MAXDOP at 8
Serveur avec plusieurs nœuds NUMAServer with multiple NUMA nodes Inférieur ou égal à 16 processeurs logiques par nœud NUMALess than or equal to 16 logical processors per NUMA node Conservez MAXDOP à une valeur égale ou inférieure au nombre de processeurs logiques par nœud NUMAKeep MAXDOP at or below # of logical processors per NUMA node
Serveur avec plusieurs nœuds NUMAServer with multiple NUMA nodes Plus de 16 processeurs logiques par nœud NUMAGreater than 16 logical processors per NUMA node Conservez MAXDOP à la moitié du nombre de processeurs logiques par nœud NUMA avec une valeur MAX de 16Keep MAXDOP at half the number of logical processors per NUMA node with a MAX value of 16

Notes

Le nœud NUMA dans la table ci-dessus fait référence à des nœuds soft-NUMA automatiquement créés par SQL Server 2016 (13.x)SQL Server 2016 (13.x) et versions ultérieures ou des nœuds NUMA si soft-NUMA a été désactivé .NUMA node in the above table refers to soft-NUMA nodes automatically created by SQL Server 2016 (13.x)SQL Server 2016 (13.x) and higher versions, or hardware-based NUMA nodes if soft-NUMA has been disabled.
Utilisez ces instructions lorsque vous définissez l’option max degree of parallelism pour les groupes de charge de travail du Resource Governor.Use these same guidelines when you set the max degree of parallelism option for Resource Governor workload groups. Pour plus d’informations, consultez CREATE WORKLOAD GROUP (Transact-SQL).For more information, see CREATE WORKLOAD GROUP (Transact-SQL).

De SQL Server 2008SQL Server 2008 à SQL Server 2014 (12.x)SQL Server 2014 (12.x), utilisez les directives suivantes quand vous configurez la valeur de configuration de serveur max degree of parallelism :From SQL Server 2008SQL Server 2008 through SQL Server 2014 (12.x)SQL Server 2014 (12.x), use the following guidelines when you configure the max degree of parallelism server configuration value:

Serveur avec un seul nœud NUMAServer with single NUMA node Inférieur ou égal à 8 processeurs logiquesLess than or equal to 8 logical processors Conserver MAXDOP à une valeur égale ou inférieure au nombre de processeurs logiquesKeep MAXDOP at or below # of logical processors
Serveur avec un seul nœud NUMAServer with single NUMA node Supérieur à 8 processeurs logiquesGreater than 8 logical processors Conservez MAXDOP à 8Keep MAXDOP at 8
Serveur avec plusieurs nœuds NUMAServer with multiple NUMA nodes Inférieur ou égal à 8 processeurs logiques par nœud NUMALess than or equal to 8 logical processors per NUMA node Conservez MAXDOP à une valeur égale ou inférieure au nombre de processeurs logiques par nœud NUMAKeep MAXDOP at or below # of logical processors per NUMA node
Serveur avec plusieurs nœuds NUMAServer with multiple NUMA nodes Supérieur à 8 processeurs logiques par nœud NUMAGreater than 8 logical processors per NUMA node Conservez MAXDOP à 8Keep MAXDOP at 8

SécuritéSecurity

AutorisationsPermissions

Les autorisations d’exécution de sp_configure , sans paramètre ou avec le premier paramètre uniquement, sont accordées par défaut à tous les utilisateurs.Execute permissions on sp_configure with no parameters or with only the first parameter are granted to all users by default. Pour exécuter sp_configure avec les deux paramètres afin de modifier une option de configuration ou d’exécuter l’instruction RECONFIGURE, un utilisateur doit disposer de l’autorisation de niveau serveur ALTER SETTINGS.To execute sp_configure with both parameters to change a configuration option or to run the RECONFIGURE statement, a user must be granted the ALTER SETTINGS server-level permission. L'autorisation ALTER SETTINGS est implicitement détenue par les rôles serveur fixes sysadmin et serveradmin .The ALTER SETTINGS permission is implicitly held by the sysadmin and serveradmin fixed server roles.

Utilisation de SQL Server Management StudioUsing SQL Server Management Studio

Pour configurer l'option max degree of parallelismTo configure the max degree of parallelism option

  1. Dans l’ Explorateur d’objets, cliquez avec le bouton droit sur un serveur et sélectionnez Propriétés.In Object Explorer, right-click a server and select Properties.

  2. Cliquez sur le nœud Avancé .Click the Advanced node.

  3. Dans la zone Degré maximal de parallélisme , sélectionnez le nombre maximal de processeurs à utiliser au cours de l'exécution d'un plan parallèle.In the Max Degree of Parallelism box, select the maximum number of processors to use in parallel plan execution.

Utilisation de Transact-SQLUsing Transact-SQL

Pour configurer l'option max degree of parallelismTo configure the max degree of parallelism option

  1. Connectez-vous au Moteur de base de donnéesDatabase Engine.Connect to the Moteur de base de donnéesDatabase Engine.

  2. Dans la barre d'outils standard, cliquez sur Nouvelle requête.From the Standard bar, click New Query.

  3. Copiez et collez l'exemple suivant dans la fenêtre de requête, puis cliquez sur Exécuter.Copy and paste the following example into the query window and click Execute. Cet exemple montre comment utiliser sp_configure pour attribuer à l’option max degree of parallelism la valeur 8.This example shows how to use sp_configure to configure the max degree of parallelism option to 8.

USE AdventureWorks2012 ;  
GO   
EXEC sp_configure 'show advanced options', 1;  
GO  
RECONFIGURE WITH OVERRIDE;  
GO  
EXEC sp_configure 'max degree of parallelism', 16;  
GO  
RECONFIGURE WITH OVERRIDE;  
GO  

Pour plus d’informations, consultez Options de configuration de serveur (SQL Server).For more information, see Server Configuration Options (SQL Server).

Suivi : Après avoir configuré l’option max degree of parallelismFollow Up: After you configure the max degree of parallelism option

Le paramètre prend effet immédiatement sans redémarrage du serveur.The setting takes effect immediately without restarting the server.

Voir aussiSee Also

ALTER DATABASE SCOPED CONFIGURATION (Transact-SQL) ALTER DATABASE SCOPED CONFIGURATION (Transact-SQL)
Recommandations et directives pour l’option de configuration Degré maximal de parallélisme dans SQL Server Recommendations and guidelines for the "max degree of parallelism" configuration option in SQL Server
affinity mask (option de configuration de serveur) affinity mask Server Configuration Option
RECONFIGURE (Transact-SQL) RECONFIGURE (Transact-SQL)
Options de configuration de serveur (SQL Server) Server Configuration Options (SQL Server)
sp_configure (Transact-SQL) sp_configure (Transact-SQL)
Guide d’architecture de traitement des requêtes Query Processing Architecture Guide
Guide d’architecture de thread et de tâche Thread and Task Architecture Guide
Configurer des opérations d'index parallèles Configure Parallel Index Operations
Indicateurs de requête (Transact-SQL) Query Hints (Transact-SQL)
Définir les options d’indexSet Index Options