SQL Server: come vengono archiviate le pagine di dati quando si utilizza un indice cluster


13

Di recente ho sentito che le pagine di dati in un indice cluster non sono memorizzate in modo contiguo. È vero?

Forse le pagine di dati vengono normalmente archiviate in modo contiguo con alcune eccezioni alla regola? O forse ho sentito male e la pagina dei dati è sempre memorizzata in modo contiguo.

Grazie molto.


1
Libri online ha presentato diagrammi piuttosto buoni che mostrano come le pagine sono archiviate fisicamente e come è strutturato l'albero B.
mrdenny,

Risposte:


11

Le pagine di dati vengono archiviate in modo contiguo quando viene creato l'indice e quando viene ricostruito l'indice. In caso contrario, SQL Server tenterà di mantenere le pagine in ordine fisico. Non essendo possibile, viene tentato l'ordine logico. È possibile ottenere spazi vuoti in una tabella a causa di altre scritture che si verificano nel database. SQL Server utilizza alberi B + per gli indici: il livello foglia (dati) dell'indice contiene i dati ma è anche un elenco doppiamente collegato che contiene puntatori alla pagina successiva e precedente. Ciò rende meno importante che la tabella sia fisicamente contigua al 100%.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.