Partager via


Configurer des opérations d’index parallèles

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase de données SQL dans Microsoft Fabric Preview

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 MAXDOP remplace 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’option MAXDOP d’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 MAXDOP d’index s’appliquent aux instructions Transact-SQL suivantes :

  • L’option MAXDOP d’index 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.

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

  1. 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.

  2. Développez le dossier Tables .

  3. 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.

  4. Développez le dossier Index .

  5. 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.

  6. Sous Sélectionner une page, sélectionnez Options.

  7. Sélectionnez Degré maximal de parallélisme, puis entrez une valeur comprise entre 1 et 64.

  8. Cliquez sur OK.

Utiliser Transact-SQL

Définir le degré maximal de parallélisme sur un index existant

  1. Dans l' Explorateur d'objets, connectez-vous à une instance du Moteur de base de données.

  2. Dans la barre d’outils standard, sélectionnez Nouvelle requête.

  3. 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_VendorID de la Purchasing.ProductVendor table 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

  1. Dans l' Explorateur d'objets, connectez-vous à une instance du Moteur de base de données.

  2. Dans la barre d’outils standard, sélectionnez Nouvelle requête.

  3. 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