Suppression et reconstruction d'objets volumineux

Lorsque vous supprimez ou reconstruisez des index volumineux, ou que vous supprimez ou tronquez des tables volumineuses, le Moteur de base de données SQL Server 2005 diffère les désallocations de pages, et leurs verrous associés, jusqu'à ce qu'une transaction ait été validée. Cette implémentation prend en charge les transactions à validation automatique et explicites dans un environnement multi-utilisateur et s'applique aux tables et index volumineux qui utilisent plus de 128 extensions.

Le Moteur de base de données évite les verrous d'allocation requis pour supprimer les objets volumineux en divisant le processus en deux phases distinctes : logique et physique.

Dans la phase logique, les unités d'allocation existantes utilisées par la table ou l'index sont marquées pour une désallocation et verrouillées jusqu'à la validation de la transaction. Dans le cas d'un index cluster supprimé, les lignes de données sont copiées puis déplacées vers les nouvelles unités d'allocation créées pour stocker un index cluster reconstruit ou un segment. (Dans le cas d'une reconstruction d'index, les lignes de données sont également triées.) Si une restauration se produit, elle ne porte que sur cette phase logique.

La phase physique se produit après la validation de la transaction. Les unités d'allocation marquées pour une désallocation sont physiquement supprimées dans des traitements. Ces suppressions sont gérées dans des transactions courtes qui se produisent en arrière-plan et nécessitent peu de verrous.

Étant donné que la phase physique se produit après la validation de la transaction, l'espace de stockage de la table ou de l'index peut apparaître comme n'étant pas disponible. Si la base de données a besoin de cet espace pour croître avant l'achèvement de la phase physique, le Moteur de base de données essaie de récupérer de l'espace dans les unités d'allocation marquées pour une désallocation. Pour déterminer l'espace actuellement utilisé par ces unités d'allocation, utilisez l'affichage catalogue sys.allocation_units.

Les opérations de suppression différées ne libèrent pas immédiatement de l'espace alloué et grèvent la charge du Moteur de base de données. Par conséquent, les tables et les index qui utilisent au plus 128 extensions sont supprimés, tronqués et reconstruits exactement comme dans SQL Server 2000. Cela signifie que les phases logique et physique se produisent avant la validation de la transaction.

Voir aussi

Concepts

Autres ressources