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.
Chaque fois qu’un index est créé, reconstruit ou supprimé, l’espace disque pour les anciennes structures (source) et nouvelle (cible) est nécessaire dans leurs 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. Un espace disque temporaire supplémentaire pour les opérations de tri peut également être nécessaire. Pour plus d'informations, consultez Exigences en matière d’espace disque pour les opérations DDL d'index.
Dans cet exemple, les besoins en espace disque pour créer un index cluster sont déterminés.
Supposons que les conditions suivantes sont remplies avant de créer l’index cluster :
La table existante (tas) contient 1 million de lignes. Chaque ligne est de 200 octets de long.
L’index non cluster A contient 1 million de lignes. Chaque ligne est de 50 octets de long.
L’index non cluster B contient 1 million de lignes. Chaque ligne est de 80 octets de long.
L’option de création d’index de mémoire est définie sur 2 Mo.
Une valeur de facteur de remplissage de 80 est utilisée pour tous les index existants et nouveaux. Cela signifie que les pages sont pleines de 80 %.
Remarque
En raison de la création d’un index cluster, les deux index non cluster doivent être reconstruits pour remplacer l’indicateur de ligne par la nouvelle clé d’index cluster.
Calculs d’espace disque pour une opération d’index hors connexion
Dans les étapes suivantes, l’espace disque temporaire à utiliser pendant l’opération d’index et l’espace disque permanent pour stocker les nouveaux index sont calculés. Les calculs indiqués sont approximatifs ; les résultats sont arrondis et considèrent uniquement la taille du niveau feuille d’index. Le tilde (~) est utilisé pour indiquer des calculs approximatifs.
Déterminez la taille des structures sources.
Mémoire : 1 million * 200 octets ~ 200 Mo
Index non cluster A : 1 million * 50 octets / 80% ~ 63 Mo
Index non cluster B : 1 million * 80 octets / 80% ~ 100 Mo
Taille totale des structures existantes : 363 Mo
Déterminez la taille des structures d’index cibles. Supposons que la nouvelle clé en cluster est de 24 octets de long, y compris un uniqueifieur. L’indicateur de ligne (8 octets de long) dans les deux index non cluster sera remplacé par cette clé en cluster.
Index clusterisé, 1 million * 200 octets / 80% ~ 250 Mo
Index non-clusterisé A : 1 million * (50 - 8 + 24) octets / 80% ~ 83 Mo
Index non cluster B : 1 million * (80 - 8 + 24) octets / 80% ~ 120 Mo
Taille totale des nouvelles structures : 453 Mo
L’espace disque total requis pour prendre en charge les structures source et cible pour la durée de l’opération d’index est de 816 Mo (363 + 453). L’espace actuellement alloué aux structures sources sera désalloué une fois l’opération d’indexation validée.
Déterminez un espace disque temporaire supplémentaire pour le tri.
Les exigences d’espace sont affichées pour le tri dans tempdb (avec SORT_IN_TEMPDB défini sur ON) et le tri dans l’emplacement cible (avec SORT_IN_TEMPDB défini sur OFF).
Lorsque SORT_IN_TEMPDB est défini sur ON, tempdb doit disposer d’un espace disque suffisant pour contenir le plus grand index (1 million * 200 octets ~ 200 Mo). Le facteur de remplissage n’est pas considéré dans l’opération de tri.
Espace disque supplémentaire (à l’emplacement tempdb ) égal à la valeur Configurer l’option de configuration du serveur de création d’index = 2 Mo.
Taille totale de l’espace disque temporaire avec SORT_IN_TEMPDB défini sur ON ~ 202 Mo.
Lorsque SORT_IN_TEMPDB est défini sur OFF (valeur par défaut), l’espace disque de 250 Mo déjà pris en compte pour le nouvel index à l’étape 2 est utilisé pour le tri.
Espace disque supplémentaire (à l’emplacement cible) égal à la valeur Configurer l’option de configuration du serveur de mémoire de création d’index = 2 Mo.
Taille totale de l’espace disque temporaire avec SORT_IN_TEMPDB défini sur OFF = 2 Mo.
À l’aide de tempdb, un total de 1018 Mo (816 + 202) serait nécessaire pour créer les index cluster et non cluster. Bien que l’utilisation de tempdb 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. Pour plus d’informations sur l’utilisation de tempdb, consultez SORT_IN_TEMPDB option pour les index.
Sans utiliser tempdb, un total de 818 Mo (816+ 2) serait nécessaire pour créer les index cluster et non cluster.
Calculs d’espace disque pour une opération d’index cluster en ligne
Lorsque vous créez, supprimez ou régénérez un index cluster en ligne, un espace disque supplémentaire est nécessaire pour générer et gérer un index de mappage temporaire. Cet index de mappage temporaire contient un enregistrement pour chaque ligne de la table, et son contenu est l’union des anciennes et nouvelles colonnes de signet.
Pour calculer l’espace disque nécessaire pour une opération d’index en cluster en ligne, suivez les étapes indiquées pour une opération d’index hors connexion et ajoutez ces résultats aux résultats de l’étape suivante.
Déterminez l’espace pour l’index de mappage temporaire.
Dans cet exemple, l’ancien signet est l’ID de ligne (RID) du tas (8 octets) et le nouveau signet est la clé de clustering (24 octets incluant un
uniqueifier). Il n’y a pas de colonnes qui se chevauchent entre les anciens et nouveaux signets.Taille de l’index de mappage temporaire = 1 million * (8 octets + 24 octets) / 80% ~ 40 Mo.
Cet espace disque doit être ajouté à l’espace disque requis à l’emplacement cible si SORT_IN_TEMPDB est défini sur OFF ou tempdb si SORT_IN_TEMPDB est défini sur ON.
Pour plus d’informations sur l’index de mappage temporaire, consultez exigences en matière d'espace disque pour les opérations DDL d’index.
Résumé de l’espace disque
Le tableau suivant récapitule les résultats des calculs d’espace disque.
| Opération d’index | Configuration requise pour l’espace disque pour les emplacements des structures suivantes |
|---|---|
| Opération d’index hors connexion avec SORT_IN_TEMPDB = ON | Espace total pendant l’opération : 1018 Mo : -Tables et index existants : 363 Mo* - tempdb : 202 Mo* -Nouveaux index : 453 Mo Espace total nécessaire après l’opération : 453 Mo |
| Opération de création d’index hors ligne avec SORT_IN_TEMPDB = OFF | Espace total pendant l’opération : 816 Mo : -Tables et index existants : 363 Mo* -Nouveaux index : 453 Mo Espace total nécessaire après l’opération : 453 Mo |
| Opération d’index en ligne avec SORT_IN_TEMPDB = ON | Espace total pendant l’opération : 1058 Mo : -Tables et index existants : 363 Mo* - tempdb (inclut l’index de mappage) : 242 Mo* -Nouveaux index : 453 Mo Espace total nécessaire après l’opération : 453 Mo |
| Opération d’index en ligne avec SORT_IN_TEMPDB = OFF | Espace total pendant l’opération : 856 Mo : -Tables et index existants : 363 Mo* -Index de mappage temporaire : 40 Mo* -Nouveaux index : 453 Mo Espace total nécessaire après l’opération : 453 Mo |
Cet espace est désalloué une fois que l’opération d’indexation est validée.
Cet exemple ne considère pas d’espace disque temporaire supplémentaire requis dans tempdb pour les enregistrements de version créés par les opérations de mise à jour et de suppression simultanées de l’utilisateur.
Contenu associé
Configurations requises d'espace disque pour les opérations DDL d'index
Espace disque du journal des transactions pour les opérations d’index