Configurer des opérations d’index parallèles
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance
Cette rubrique 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, à l’instar d’autres requêtes, utiliser des processeurs multiples (UC) pour réaliser les opérations d’analyse, de tri et d’indexation associées à l’instruction d’index. 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.
Remarque
Les opérations d’index parallèles ne sont pas disponibles dans toutes les éditions de SQL Server. Pour plus d’informations, consultez Éditions et fonctionnalités prises en charge de SQL Server 2022.
Dans cette rubrique
Avant de commencer :
Pour configurer l'option Degré maximal de parallélisme à l'aide de :
Avant de commencer
Limitations et restrictions
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 MAXDOP remplace l'option de configuration max degree of parallelism uniquement pour la requête qui la spécifie. Le tableau suivant répertorie les valeurs entières valides qui peuvent être spécifiées au moyen de l'option de configuration max degree of parallelism et de l'option d'index MAXDOP.
Valeur 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. Un nombre moins élevé 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 parallèle d’index et l’option d’index MAXDOP s’appliquent aux instructions Transact-SQL suivantes :
DROP INDEX (index cluster uniquement.)
L'option d'index MAXDOP ne peut pas être spécifiée dans l'instruction
ALTER 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.
Autorisations
Nécessite l’autorisation ALTER
sur la table ou la vue.
Utilisation de SQL Server Management Studio
Pour définir le degré maximal de parallélisme sur un index
Dans l'Explorateur d'objets, cliquez sur le signe plus (+) pour développer la base de données qui contient la table dans laquelle vous souhaitez spécifier un degré maximal de parallélisme pour un index.
Développez le dossier Tables .
Cliquez sur 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.
Utilisation de Transact-SQL
Pour 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, cliquez sur Nouvelle requête.
Copiez et collez l'exemple suivant dans la fenêtre de requête, puis cliquez sur Exécuter.
USE AdventureWorks2022; GO /*Alters the IX_ProductVendor_VendorID index on the Purchasing.ProductVendor table so that, if the server has eight or more processors, the Database Engine will limit the execution of the index operation to eight or fewer processors. */ ALTER INDEX IX_ProductVendor_VendorID ON Purchasing.ProductVendor REBUILD WITH (MAXDOP=8); GO
Pour plus d’informations, consultez ALTER INDEX (Transact-SQL).
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, cliquez sur Nouvelle requête.
Copiez et collez l'exemple suivant dans la fenêtre de requête, puis cliquez sur Exécuter.
USE AdventureWorks2022; GO CREATE INDEX IX_ProductVendor_NewVendorID ON Purchasing.ProductVendor (BusinessEntityID) WITH (MAXDOP=8); GO
Voir aussi
Guide d’architecture de traitement des requêtes
CREATE INDEX (Transact-SQL)
ALTER INDEX (Transact-SQL)
DROP INDEX (Transact-SQL)
ALTER TABLE (Transact-SQL)
ALTER TABLE table_constraint (Transact-SQL)
ALTER TABLE index_option (Transact-SQL)