Configuration d'opérations d'index parallèles

Sur des ordinateurs multiprocesseur qui exécutent Microsoft SQL Server 2005 Enterprise Edition, les instructions d'index peuvent, à l'instar d'autres requêtes, utiliser plusieurs processeurs pour effectuer les opérations d'analyse et de tri qui leur sont associées. Le nombre de processeurs utilisés pour exécuter une instruction d'index est déterminé par l'option de configuration max degree of parallelism et par la charge de travail actuelle. L'option max degree of parallelism limite le nombre de processeurs à utiliser dans une exécution de plan parallèle. Si Moteur de base de données SQL Server 2005 détecte que le système est occupé, le degré de parallélisme de l'opération d'index est automatiquement réduit avant l'exécution de l'instruction.

ms189329.note(fr-fr,SQL.90).gifRemarque :
Les opérations d'index parallèles ne sont disponibles que dans SQL Server 2005 Enterprise Edition.

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 de processeurs qui sont utilisés pour exécuter l'instruction d'index en spécifiant l'option d'index MAXDOP et 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 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

Utilise le nombre réel d'UC disponibles en fonction de la charge de travail du système actuelle. Il s'agit de la valeur par défaut et recommandée.

1

Supprime la génération d'un plan parallèle. 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 :

  • CREATE INDEX
  • ALTER INDEX REBUILD
  • DROP INDEX (index cluster uniquement.)
  • ALTER TABLE ADD (index) CONSTRAINT
  • ALTER TABLE DROP (index cluster) CONSTRAINT

Toutes les règles sémantiques qui sont utilisées avec l'option max degree of parallelism s'appliquent également à l'option d'index MAXDOP. Pour plus d'informations, consultez Option max degree of parallelism.

Lorsque vous exécutez l'instruction ALTER INDEX REORGANIZE avec ou sans LOB_COMPACTION, la valeur max degree of parallelism indique une opération mono-thread. L'option d'index MAXDOP ne peut pas être spécifiée dans l'instruction ALTER INDEX REORGANIZE.

Opérations d'index en ligne

Les opérations d'index en ligne prennent en charge l'activité de plusieurs utilisateurs simultanés. Vous pouvez utiliser l'option MAXDOP pour contrôler le nombre de processeurs alloués à l'opération d'index en ligne. Ceci vous permet de bien répartir les ressources entre l'opération d'index et les utilisateurs simultanés. Pour plus d'informations, consultez Exécution d'opérations en ligne sur les index.

Opérations d'index partitionné

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 Consignes spéciales pour les index partitionnés.

Exemple

L'exemple suivant crée l'index IX_ProductVendor_VendorID sur la table ProductVendor et attribue à l'option max degree of parallelism la valeur 8. Partant de l'hypothèse que le serveur dispose au minimum de huit processeurs, le Moteur de base de données limite l'exécution de l'opération d'index à huit processeurs maximum.

USE AdventureWorks;
GO
IF EXISTS (SELECT name FROM sys.indexes
            WHERE name = N'IX_ProductVendor_VendorID')
    DROP INDEX IX_ProductVendor_VendorID ON Purchasing.ProductVendor;
GO
CREATE INDEX IX_ProductVendor_VendorID 
ON Purchasing.ProductVendor (VendorID)
WITH (MAXDOP=8);
GO

Voir aussi

Concepts

Traitement de requêtes en parallèle

Autres ressources

ALTER INDEX (Transact-SQL)
ALTER TABLE (Transact-SQL)
CREATE INDEX (Transact-SQL)
DROP INDEX (Transact-SQL)

Aide et Informations

Assistance sur SQL Server 2005