SQL Server - Wie werden Datenseiten gespeichert, wenn ein Clustered-Index verwendet wird?

13

Ich habe kürzlich gehört, dass die Datenseiten in einem Clustered-Index nicht zusammenhängend gespeichert werden. Ist das wahr?

Vielleicht werden Datenseiten normalerweise mit einigen Ausnahmen von der Regel zusammenhängend gespeichert? Oder vielleicht habe ich falsch gehört und Datenseite wird immer zusammenhängend gespeichert.

Danke vielmals.

Erdnuss
quelle
1
Die Onlinedokumentation enthält sehr gute Diagramme, die zeigen, wie die Seiten physisch gespeichert sind und wie der B-Baum angeordnet ist.
Mrdenny

Antworten:

11

Datenseiten werden zusammenhängend gespeichert, wenn der Index erstellt und wenn der Index neu erstellt wird. Andernfalls versucht SQL Server, die Seiten in physischer Reihenfolge zu halten. Da dies nicht möglich ist, wird eine logische Reihenfolge versucht. Sie können aufgrund anderer Schreibvorgänge in der Datenbank Lücken in einer Tabelle erhalten. SQL Server verwendet B + -Bäume für Indizes. Die Blatt- (Daten-) Ebene des Index enthält die Daten, ist jedoch auch eine doppelt verknüpfte Liste, die Verweise auf die nächsten und vorherigen Seiten enthält. Aus diesem Grund ist es weniger wichtig, dass die Tabelle zu 100% physisch zusammenhängend ist.

Jeremiah Peschka
quelle