Czy stosy są uważane za strukturę indeksu, czy są to ściśle struktury tabel bez indeksu?

Odpowiedzi:

9

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:

  • Tabele klastrowe to tabele, które mają indeks klastrowany.

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.

  • Sterty to tabele, które nie mają indeksu klastrowego.

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:

Marian
źródło
10

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.

Jon Seigel
źródło
4

Struktura tabeli bez indeksu klastrowego.


źródło