Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L’espace disque est un facteur important à prendre en compte lorsque vous créez, régénérez ou supprimez des index. L’espace disque insuffisant peut dégrader les performances ou même entraîner l’échec de l’opération d’index. Cette rubrique fournit des informations générales qui peuvent vous aider à déterminer la quantité d’espace disque nécessaire pour les opérations DDL (Index Data Definition Language).
Opérations d’index qui ne nécessitent pas d’espace disque supplémentaire
Les opérations d’index suivantes ne nécessitent pas d’espace disque supplémentaire :
ALTER INDEX REORGANIZE ; mais l'espace de journalisation est requis.
Utilisez DROP INDEX lorsque vous supprimez un index non clusterisé.
DROP INDEX lorsque vous supprimez un index cluster hors connexion sans spécifier la clause MOVE TO et les index non cluster n’existent pas.
CRÉER TABLE (contraintes PRIMARY KEY ou UNIQUE)
Opérations d’index nécessitant un espace disque supplémentaire
Toutes les autres opérations DDL d’index nécessitent un espace disque temporaire supplémentaire à utiliser pendant l’opération et un espace disque permanent pour stocker la nouvelle structure ou structures d’index.
Lorsqu'une nouvelle structure d'index est créée, de l'espace disque est nécessaire pour l'ancienne structure (source) et la nouvelle (cible) dans les fichiers et groupes de fichiers appropriés. L'ancienne structure n'est pas désallouée aussi longtemps que la transaction de création d'index n'est pas validée.
Les opérations DDL d’index suivantes créent de nouvelles structures d’index et nécessitent un espace disque supplémentaire :
CRÉER UN INDEX
CRÉER INDEX AVEC DROP_EXISTING
MODIFIER L'INDEX RECONSTITUER
ALTÉRER TABLE AJOUTER CONTRAINTE (CLÉ PRIMAIRE ou UNIQUE)
ALTER TABLE DROP CONSTRAINT (PRIMARY KEY ou UNIQUE) lorsque la contrainte est basée sur un index clusterisé
DROP INDEX MOVE TO (S’applique uniquement aux index cluster.)
Espace disque temporaire pour le tri
Outre l’espace disque requis pour les structures source et cible, l’espace disque temporaire est requis pour le tri, sauf si l’optimiseur de requête trouve un plan d’exécution qui ne nécessite pas de tri.
Si le tri est requis, le tri se produit un nouvel index à la fois. Par exemple, lorsque vous régénérez un index cluster et des index non cluster associés dans une seule instruction, les index sont triés l’un après l’autre. Par conséquent, l’espace disque temporaire supplémentaire requis pour le triage doit être aussi grand que le plus grand index de l’opération. Il s'agit presque toujours de l'index clusterisé.
Si l’option SORT_IN_TEMPDB est définie sur ON, le plus grand index doit s’adapter à tempdb. Bien que cette option augmente la quantité d’espace disque temporaire utilisé pour créer un index, elle peut réduire le temps nécessaire pour créer un index lorsque tempdb se trouve sur un ensemble de disques différent de la base de données utilisateur.
Si SORT_IN_TEMPDB est défini sur OFF (valeur par défaut) chaque index, y compris les index partitionnés, est trié dans son espace disque de destination ; et uniquement l’espace disque pour les nouvelles structures d’index est nécessaire.
Pour obtenir un exemple de calcul de l’espace disque, consultez l’exemple d’espace disque d’index.
Espace disque temporaire pour les opérations d’index en ligne
Lorsque vous effectuez des opérations d’index en ligne, un espace disque temporaire supplémentaire est nécessaire.
Si un index clusterisé est créé, reconstruit ou supprimé en ligne, un index non clusterisé temporaire est créé pour relier les anciens signets aux nouveaux signets. Si l’option SORT_IN_TEMPDB est définie sur ON, cet index temporaire est créé dans tempdb. Si SORT_IN_TEMPDB est défini sur OFF, le même groupe de fichiers ou le même schéma de partition que l’index cible est utilisé. L'index temporaire de mappage contient un enregistrement pour chaque ligne de la table, et son contenu est constitué de l'union des colonnes de signet anciennes et nouvelles, incluant les identificateurs d'unicité et les identificateurs d'enregistrement, ainsi qu'une seule copie de toute colonne utilisée dans les deux signets. Pour plus d’informations sur les opérations d’index en ligne, consultez Effectuer des opérations d’index en ligne.
Remarque
Impossible de définir l’option SORT_IN_TEMPDB pour les instructions DROP INDEX. L’index de mappage temporaire est toujours créé dans le même groupe de fichiers ou le même schéma de partition que l’index cible.
Les opérations d’index en ligne utilisent le contrôle de version de ligne pour isoler l’opération d’index des effets des modifications apportées par d’autres transactions. Cela évite la nécessité de demander des verrous de partage sur les lignes lues. Les opérations de mise à jour et de suppression simultanées des utilisateurs pendant les opérations d’index en ligne nécessitent de l’espace pour les enregistrements de version dans tempdb. Pour plus d’informations, consultez Effectuer des opérations d’index en ligne .
Tâches associées
Exemple d’espace disque d’index
Espace disque du journal des transactions pour les opérations d’index
Estimer la taille d'un index cluster
Estimer la taille d'un index non-cluster