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.
S’applique à :SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de données SQL dans Microsoft Fabric
Chaque fois qu'un index est créé, reconstruit ou supprimé, de l'espace disque est nécessaire tant pour l'ancienne structure (source) que pour la nouvelle (cible) dans leurs fichiers et groupes de fichiers respectifs. L’ancienne structure n’est pas libérée tant que la transaction de création d’index n’a pas été validée. Un espace disque temporaire supplémentaire pour les opérations de tri peut également être nécessaire. Pour plus d’informations, consultez les exigences d’espace disque pour les opérations DDL d’index.
Cet exemple détermine l'espace disque nécessaire pour la création d'un index cluster.
Supposons que les conditions suivantes sont remplies avant la création de l'index cluster :
- La table existante (heap) contient 1 million de lignes. Chaque ligne a une longueur de 200 octets.
- L'index non-cluster A contient 1 million de lignes. Chaque ligne a une longueur de 50 octets.
- L'index non-cluster B contient 1 million de lignes. Chaque ligne a une longueur de 80 octets.
- L'option index create memory a pour valeur 2 Mo.
- Une valeur de taux de remplissage de 80 est utilisée pour l'ensemble des index (nouveaux et existants). Cela signifie que les pages sont remplies à 80 %.
Remarque
Suite à 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
La procédure suivante permet de calculer l'espace disque temporaire à utiliser pendant l'opération d'index et l'espace disque permanent pour le stockage des nouveaux index. Les calculs indiqués sont approximatifs : les résultats sont arrondis et ne tiennent compte que de la taille du niveau feuille de l'index. Le tilde (~) est utilisé pour indiquer les calculs is approximatifs.
Déterminez la taille des structures sources.
- Tas : 1 million*200 octets ~ 200 Mo
- Index non clusterisé 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 a une longueur de 24 octets, indicateur d’unicité compris. L'indicateur de ligne (8 octets de long) des deux index non-cluster sera remplacé par cette clé d'index cluster.
Index clusterisé : 1 million * 200 bytes / 80% ~ 250 Mo
Index non cluster 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 pendant 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'index validée.
Déterminez l'espace disque temporaire supplémentaire pour le tri.
Les exigences d’espace sont affichées pour le tri dans
tempdb(avecSORT_IN_TEMPDBdéfini surON) et le tri dans l’emplacement cible (avecSORT_IN_TEMPDBdéfini surOFF).Lorsque
SORT_IN_TEMPDBest défini surON,tempdbdoit 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 pris en compte dans l’opération de tri.Espace disque supplémentaire (à l’emplacement
tempdb) égal à la valeur de mémoire de création d’index = 2 Mo.Taille totale de l’espace disque temporaire avec
SORT_IN_TEMPDBconfiguré surON~ 202 Mo.Quand
SORT_IN_TEMPDBest définiOFFsur (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 de mémoire de création d’index = 2 Mo.
Taille totale de l’espace disque temporaire défini
SORT_IN_TEMPDBsurOFF= 2 Mo.
L'utilisation de tempdb, un total de 1018 Mo (816 + 202) serait nécessaire pour créer les index clusterisés et non-clusterisés. Bien que l’utilisation tempdb augmente la quantité d’espace disque temporaire utilisé pour créer un index, il peut réduire le temps nécessaire pour créer un index lorsqu’il 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
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 en cluster en ligne
Lorsque vous créez, supprimez ou reconstruisez un index cluster en ligne, de l'espace disque supplémentaire est requis pour créer et gérer un index de mappage temporaire. Celui-ci contient un enregistrement de chaque ligne de la table, et son contenu est l'union des anciennes colonnes de signets et des nouvelles.
Pour calculer l'espace disque nécessaire pour une opération d'index cluster en ligne, conformez-vous à la procédure décrite pour une opération d'index hors ligne et ajoutez ces résultats à ceux de l'étape suivante.
Déterminez l'espace de l'index de mappage temporaire.
Dans cet exemple, l’ancien signet est l’ID de ligne (RID) du segment de mémoire (8 octets) et le nouveau signet est la clé de clustering (24 octets, indicateur d’unicitécompris). Aucune colonne ne se chevauche 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 dans l’emplacement cible si
SORT_IN_TEMPDBest défini surOFF, ou surtempdbsiSORT_IN_TEMPDBest défini surON.
Pour plus d’informations sur l’index de mappage temporaire, consultez la configuration requise de l’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 de l'espace disque.
| Opération d'index | Espace disque nécessaire pour les emplacements des structures suivantes |
|---|---|
Opération d’index hors connexion avec SORT_IN_TEMPDB = ON |
Espace total pendant l’opération : 1 018 Mo - Tables et index existants : 363 Mo 1 - tempdb: 202 Mo 1- Nouveaux index : 453 Mo Espace total requis après l'opération : 453 Mo |
Opération d’index hors connexion avec SORT_IN_TEMPDB = OFF |
Espace total lors de l'opération : 816 Mo - Tables et index existants : 363 Mo 1 - Nouveaux index : 453 Mo Espace total requis après l'opération : 453 Mo |
Opération d’index en ligne avec SORT_IN_TEMPDB = ON |
Espace total pendant l’opération : 1 058 Mo - Tables et index existants : 363 Mo 1 - tempdb (inclut l’index de mappage) : 242 Mo*- Nouveaux index : 453 Mo Espace total requis après l'opération : 453 Mo |
Opération d’index en ligne avec SORT_IN_TEMPDB = OFF |
Espace total lors de l'opération : 856 Mo - Tables et index existants : 363 Mo 1 - Index de mappage temporaire : 40 Mo 1 - Nouveaux index : 453 Mo Espace total requis après l'opération : 453 Mo |
1 Cet espace est libéré une fois l’opération d’index validée.
Cet exemple ne prend pas en compte d’espace disque temporaire supplémentaire requis pour tempdb les enregistrements de version créés par les opérations de mise à jour et de suppression simultanées de l’utilisateur.