Partager via


Configurer des opérations d’index parallèles

Cette rubrique définit le degré maximal de parallélisme et explique comment modifier ce paramètre dans SQL Server 2014 à l’aide de SQL Server Management Studio ou de Transact-SQL. Sur les ordinateurs multiprocesseurs qui exécutent SQL Server Enterprise ou une version ultérieure, les instructions d’index peuvent utiliser plusieurs processeurs 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 de processeurs utilisés pour exécuter une instruction d’index unique est déterminé par l’option de configuration max degree of parallelism , la charge de travail actuelle et les statistiques d’index. L’option max degree of parallelism détermine le nombre maximal de processeurs à utiliser dans l’exécution du 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 réduit 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 que la fréquence de chaque valeur distincte varie considérablement.

Remarque

Les opérations d’index parallèles ne sont pas disponibles dans chaque édition DE SQL Server. Pour plus d'informations, consultez Features Supported by the Editions of SQL Server 2014.

Dans cette rubrique

Avant de commencer

Limitations et restrictions

  • Le nombre de processeurs utilisés par l’optimiseur de requête offre généralement des performances optimales. Toutefois, les opérations telles que la création, la reconstruction ou la suppression d’index très volumineux sont gourmandes en ressources et peuvent entraîner des ressources insuffisantes pour d’autres applications et opérations de base de données pendant la durée de l’opération d’index. Lorsque ce problème 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 à utiliser pour l’opération d’index.

  • L'option d'index MAXDOP remplace l'option de configuration du degré maximal de parallélisme 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 d’index MAXDOP.

    Valeur Descriptif
    0 Spécifie que le serveur détermine le nombre de processeurs utilisés, en fonction de la charge de travail système actuelle. Il s’agit de la valeur par défaut et du paramètre recommandé.
    1 Supprime la création de plans parallèles. L’opération sera 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 de processeurs disponibles est spécifiée, le nombre réel de processeurs disponibles est utilisé.
  • L’exécution d’index parallèle et l’option d’index MAXDOP s’appliquent aux instructions Transact-SQL suivantes :

    • CRÉER UN INDEX

    • MODIFIER L'INDEX RECONSTITUER

    • DROP INDEX (Cela s’applique uniquement aux index clusterisés.)

    • CONTRAINTE ALTER TABLE ADD (index)

    • ALTER TABLE DROP CONSTRAINT (index clusterisé)

  • L’option d’index MAXDOP ne peut pas être spécifiée dans l’instruction ALTER INDEX REORGANIZE.

  • Les exigences en mémoire pour les opérations d’index partitionnée qui nécessitent un tri peuvent être plus importantes si l’optimiseur de requête applique des degrés de parallélisme à l’opération de génération. Plus le degré de parallélisme est élevé, plus la mémoire requise est élevée. Pour plus d’informations, consultez Tables et index partitionnés.

Sécurité

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

  1. Dans l’Explorateur d’objets, cliquez sur 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. 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.

  4. Développez le dossier Index.

  5. Cliquez avec le bouton droit sur l’index pour lequel 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.

Utilisation de Transact-SQL

Pour 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, cliquez sur Nouvelle requête.

  3. Copiez et collez l'exemple suivant dans la fenêtre de requête, puis cliquez sur Exécuter.

    USE AdventureWorks2012;   
    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).

Définir le degré maximal de parallélisme sur 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, cliquez sur Nouvelle requête.

  3. Copiez et collez l'exemple suivant dans la fenêtre de requête, puis cliquez sur Exécuter.

    USE AdventureWorks2012;  
    GO  
    CREATE INDEX IX_ProductVendor_NewVendorID   
    ON Purchasing.ProductVendor (BusinessEntityID)  
    WITH (MAXDOP=8);  
    GO  
    

Pour plus d’informations, consultez CREATE INDEX (Transact-SQL).