SQL Server - w jaki sposób są przechowywane strony danych podczas korzystania z indeksu klastrowego

13

Niedawno usłyszałem, że strony danych w indeksie klastrowym nie są przechowywane w sposób ciągły. Czy to prawda?

Być może strony danych są zwykle przechowywane w sposób ciągły, z pewnymi wyjątkami od reguły? A może źle słyszałem, a strona danych jest zawsze przechowywana w sposób ciągły.

Wielkie dzięki.

Arachid
źródło
1
Books Online ma całkiem niezłe diagramy, które pokazują, jak strony są fizycznie przechowywane i jak układa się drzewo B.
mrdenny,

Odpowiedzi:

11

Strony danych są przechowywane w sposób ciągły, gdy indeks jest tworzony i gdy indeks jest przebudowywany. W przeciwnym razie SQL Server będzie próbował utrzymać strony w fizycznej kolejności. To nie jest możliwe, próbuje się uporządkować logicznie. Możesz dostać luki w tabeli z powodu innych zapisów, które mają miejsce w bazie danych. SQL Server używa drzew B + do indeksów - poziom liścia (danych) indeksu zawiera dane, ale jest także podwójnie połączoną listą, która zawiera wskaźniki do następnej i poprzedniej strony. To sprawia, że ​​mniej ważne jest, aby stół był w 100% fizycznie ciągły.

Jeremiasz Peschka
źródło