Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
S’applique à :SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de données SQL dans Microsoft Fabric
Cet article définit le degré maximal de parallélisme et explique comment modifier ce paramètre dans SQL Server à l’aide de SQL Server Management Studio ou de Transact-SQL.
Sur les systèmes multiprocesseurs qui exécutent SQL Server Enterprise ou une version ultérieure, les instructions d’index peuvent utiliser plusieurs processeurs (PROCESSEUR) pour effectuer les opérations d’analyse, de tri et d’index associées à l’instruction d’index comme d’autres requêtes. Le nombre d’UC utilisées pour exécuter une instruction d’index est déterminé par l’option de configuration de serveur Degré maximal de parallélisme , par la charge de travail actuelle et par les statistiques d’index.
L'option max degree of parallelism détermine le nombre maximal de processeurs à utiliser au cours de l'exécution d'un plan parallèle. Si le moteur de base de données SQL Server détecte que le système est occupé, le degré de parallélisme de l’opération d’index est automatiquement diminué avant le démarrage de l’exécution de l’instruction. Le moteur de base de données peut également réduire le degré de parallélisme si la colonne clé principale d’un index non partitionné a un nombre limité de valeurs distinctes ou si la fréquence de chaque valeur distincte varie considérablement. Pour plus d’informations, consultez le Guide d’architecture de traitement des requêtes.
Note
Les opérations d’index parallèles ne sont pas disponibles dans chaque édition DE SQL Server. Pour plus d’informations, consultez Éditions et fonctionnalités prises en charge de SQL Server 2022.
Limites
Le nombre de processeurs utilisés par l'optimiseur de requête garantit généralement des performances optimales. Toutefois, des opérations comme la création, la reconstruction ou la suppression d'index volumineux exigent beaucoup de ressources et peuvent, pendant leur exécution, entraîner un manque de ressources pour d'autres opérations d'applications ou de base de données.
Lorsque cette situation se produit, vous pouvez configurer manuellement le nombre maximal de processeurs utilisés pour exécuter l'instruction d'index en limitant le nombre de processeurs qui peuvent être utilisés par l'opération d'index.
L'option d'index
MAXDOPremplace le paramètre de configuration "max degree of parallelism" uniquement pour la requête qui spécifie cette option. Le tableau suivant répertorie les valeurs entières valides qui peuvent être spécifiées avec l’option de configuration max degree of parallelism et l’optionMAXDOPd’index.Value Description 0 Spécifie que le serveur détermine le nombre de processeurs utilisés, selon la charge système actuelle. Il s'agit de la valeur par défaut et recommandée. 1 Supprime la création de plans parallèles. L’opération est exécutée en série. 2-64 Limite le nombre de processeurs à la valeur spécifiée. Moins de processeurs peuvent être utilisés en fonction de la charge de travail actuelle. Si une valeur supérieure au nombre d'UC disponibles est spécifiée, c'est le nombre d'UC disponibles qui est utilisé. L’exécution d’index parallèle et l’option
MAXDOPd’index s’appliquent aux instructions Transact-SQL suivantes :L’option
MAXDOPd’index ne peut pas être spécifiée dans l’instructionALTER INDEX (...) REORGANIZE.Les besoins en mémoire des opérations d'index partitionné avec tri peuvent augmenter si l'optimiseur de requête applique des degrés de parallélisme à l'opération de construction. Plus le degré de parallélisme est élevé, plus les besoins en mémoire sont importants. Pour plus d’informations, consultez Tables et index partitionnés.
Permissions
Nécessite l’autorisation ALTER sur la table ou la vue.
Utiliser SQL Server Management Studio
Définir le degré maximal de parallélisme sur un index
Dans l’Explorateur d’objets, sélectionnez le signe plus pour développer la base de données qui contient la table sur laquelle vous souhaitez définir le degré maximal de parallélisme pour un index.
Développez le dossier Tables .
Sélectionnez le signe plus pour développer la table sur laquelle vous souhaitez définir le degré maximal de parallélisme pour un index.
Développez le dossier Index .
Cliquez avec le bouton droit sur l’index où vous souhaitez définir le degré maximal de parallélisme et sélectionnez Propriétés.
Sous Sélectionner une page, sélectionnez Options.
Sélectionnez Degré maximal de parallélisme, puis entrez une valeur comprise entre 1 et 64.
Cliquez sur OK.
Utiliser Transact-SQL
Définir le degré maximal de parallélisme sur un index existant
Dans l' Explorateur d'objets, connectez-vous à une instance du Moteur de base de données.
Dans la barre d’outils standard, sélectionnez Nouvelle requête.
Copiez et collez l’exemple suivant dans la fenêtre de requête, puis sélectionnez Exécuter. Ce code modifie l’index
IX_ProductVendor_VendorIDde laPurchasing.ProductVendortable afin que, si le serveur a huit processeurs ou plus, le moteur de base de données limite l’exécution de l’opération d’index à huit processeurs ou moins.USE AdventureWorks2022; GO ALTER INDEX IX_ProductVendor_VendorID ON Purchasing.ProductVendor REBUILD WITH(MAXDOP = 8); GO
Pour plus d’informations, consultez ALTER INDEX.
Spécifier le degré maximal de parallélisme lors de la création d’un nouvel index
Dans l' Explorateur d'objets, connectez-vous à une instance du Moteur de base de données.
Dans la barre d’outils standard, sélectionnez Nouvelle requête.
Copiez et collez l’exemple suivant dans la fenêtre de requête, puis sélectionnez Exécuter.
USE AdventureWorks2022; GO CREATE INDEX IX_ProductVendor_NewVendorID ON Purchasing.ProductVendor(BusinessEntityID) WITH (MAXDOP = 8); GO