Inspirowany tym postem: https://twitter.com/#!/SQLChicken/status/102930436795285505
Sterty: czy są one uważane za strukturę indeksu, czy są one ściśle strukturą tabel bez indeksu?
Inspirowany tym postem: https://twitter.com/#!/SQLChicken/status/102930436795285505
Sterty: czy są one uważane za strukturę indeksu, czy są one ściśle strukturą tabel bez indeksu?
Odpowiedzi:
Z MSDN - Organizacja tabel i indeksów :
„Tabele programu SQL Server używają jednej z dwóch metod do organizowania swoich stron danych na partycji:
Wiersze danych są przechowywane w kolejności na podstawie klastrowego klucza indeksu. Indeks klastrowy jest implementowany jako struktura indeksu B-drzewa, która obsługuje szybkie pobieranie wierszy na podstawie ich wartości klucza indeksu klastrowego. Strony na każdym poziomie indeksu, w tym strony danych na poziomie liścia, są połączone na podwójnie połączonej liście. Jednak nawigacja między poziomami odbywa się za pomocą kluczowych wartości.
Wiersze danych nie są przechowywane w określonej kolejności i nie ma określonej kolejności sekwencji stron danych. Strony danych nie są połączone na połączonej liście ”.
Sterty - Optymalizacja programu SQL Server :
„Tabela sterty z definicji jest tabelą, która nie ma żadnych indeksów klastrowych. Różne strony tabeli opartej na sterty zajmują różne niesąsiadujące obszary na dysku i nie są ze sobą w żaden sposób połączone”.
W przeciwieństwie do - struktur klastrowych indeksów : „W SQL Server indeksy są zorganizowane jako drzewa B. Każda strona w drzewie B indeksowania jest nazywana węzłem indeksu. Górny węzeł drzewa B nazywany jest węzłem głównym. dolny poziom węzłów w indeksie nazywa się węzłami liścia. Wszelkie poziomy indeksu między korzeniem a węzłami liścia są wspólnie nazywane poziomami pośrednimi. W indeksie klastrowym węzły liścia zawierają strony danych podstawowej tabeli . węzły poziomu pośredniego zawierają strony indeksu zawierające wiersze indeksu Każdy wiersz indeksu zawiera wartość klucza i wskaźnik do strony poziomu pośredniego w drzewie B lub wiersza danych na poziomie liścia indeksu. indeks jest połączony na podwójnie powiązanej liście. ”
Inne referencje:
Indeks sugeruje, że kolejność danych w wierszach. Biorąc pod uwagę, że sterta nie jest tworzona z taką kolejnością i nie utrzymuje kolejności, jest to tylko metoda przechowywania danych w tabeli.
Istnieje kilka przykładów (powiedzmy dm_db_index_physical_stats ), w których aby określić stertę, musisz wprowadzić identyfikator indeksu równy 0. Chociaż wydaje się to zaprzeczać temu, co właśnie powiedziałem, myślę, że to tylko magiczna wartość upraszczająca interfejs API i jego stosowanie; nic więcej.
Struktura tabeli bez indeksu klastrowego.