Opis stron i zakresów

Podstawową jednostką przechowywania danych w SQL Server jest to strona. The disk space allocated to a data file (.mdf or .ndf) in a database is logically divided into pages numbered contiguously from 0 to n.Dyskowych operacji We/Wy są wykonywane poziom strona.Oznacza to, SQL Server odczytuje lub zapisuje dane całej strony.

Zakresy są zbiorem osiem stron fizycznie sąsiadujących ze sobą i są używane do wydajnego zarządzania strony.Wszystkie strony są przechowywane w zakresów.

Strony

W SQL Server, rozmiar strona jest 8 KB. Oznacza to, że SQL Server baz danych używających 128 stron w jednym megabajcie. Każda strona zaczyna się od nagłówek 96-bajtowych, który jest używany do przechowywania informacji systemu pomocy dla strony.Informacje te obejmują numer strony, strona Typ, ilość wolnego miejsca na stronie i identyfikator jednostka alokacji obiektu, który jest właścicielem strony.

W poniższej tabela przedstawiono typy stron, używane w plikach danych SQL Server Baza danych.

Typ strona

Spis treści

Dane

Wiersze danych, zawierająca wszystkie dane, z wyjątkiem text, ntext, image, nvarchar(max), varchar(max), varbinary(max), a xml dane, jeśli tekst w wierszu jest ustawiona na ON.

CTRL + F1

Hasła indeksu.

Tekstu/obrazu

Typy danych dużego obiektu:

  • text, ntext, image, nvarchar(max), varchar(max), varbinary(max), a xml dane

Kolumny o zmiennej długości, gdy wiersz danych przekracza 8 KB:

  • varchar, nvarchar, varbinary, a sql_variant

Tablica alokacji globalne, udostępnione globalnego tablicy alokacji

Informacja, czy są one przydzielane zakresy.

Wolne miejsce strona

Informacji na temat podziału strona i wolnego miejsca dostępnego na stronach.

Mapa alokacji indeksu

Informacje dotyczące zakresów używane przez tabela lub indeksu na jednostka alokacji.

Mapa zmienione zbiorczej

Informacje dotyczące zakresów modyfikowany przez operacje zbiorcze od czasu ostatniego dziennik kopia zapasowa instrukcja na jednostkę alokacji.

Różnicowa zmienione mapy

Informacje dotyczące zakresów, które uległy zmianie od czasu ostatniego wyciągu kopia zapasowa DATABASE na jednostka alokacji.

Uwaga

Pliki dziennika nie zawierają stron, zawierają szereg rekordów dziennika.

Wiersze danych są umieszczane strona pojedynczo, uruchamianie natychmiast po nagłówku.tabela Wiersz przesunięcia rozpoczyna się od końca strona, a każdy wiersz tabela przesunięcia zawiera jeden wpis dla każdego wiersza strona.Każdy wpis rekordy, jak daleko jest pierwszy bajt w wierszu od początku strona.Wpisy w tabela Wiersz przesunięcia znajdują się w odwrotnej kolejności z sekwencji numerów wierszy strona.

SQL Server data page with row offsets

Obsługa dużych wierszy

Wiersze nie mogą rozciągać się na stronach, jednak części w wierszu, mogą być przenoszone poza strona w wierszu, aby wiersz faktycznie mogą być bardzo duże.Maksymalna ilość danych i obciążenie, które znajduje się w jednym wierszu strona jest 8,060 bajtów (8 KB).Jednak nie dotyczy danych przechowywanych w typ tekstu/obrazu strona.To ograniczenie jest złagodzone dla tabel, które zawierają varchar, nvarchar, varbinary, lub sql_variant kolumny. Gdy rozmiar wiersza sumy wszystkich kolumn stałych i zmiennych w tabela przekracza ograniczenia 8,060 bajt SQL Server dynamicznie Przenosi jeden lub więcej kolumn o zmiennej długości do stron w ROW_OVERFLOW_DATA jednostka alokacji, wyjścia z kolumna do szerokości największej. Można to zrobić za każdym razem, gdy operacja aktualizacji lub wstawienia zwiększa całkowity rozmiar wiersza powyżej limitu 8060 bajtów.Gdy kolumna zostanie przeniesiony na inną strona w jednostce alokacji ROW_OVERFLOW_DATA, 24-bajtowy wskaźnik na oryginalnej stronie w jednostce alokacji IN_ROW_DATA jest zachowywane.Jeśli kolejnej operacji zmniejsza rozmiar wiersza SQL Server dynamicznie przenoszony w kolumnach do oryginalnej strona danych. Aby uzyskać więcej informacji zobaczRow-Overflow Data Exceeding 8 KB.

Zakresy

Zakresy są podstawową jednostką, w której obszar jest zarządzany.fragment jest osiem stron fizycznie ciągłe lub 64 KB.Oznacza to, że SQL Server bazy danych ma 16 zakresów w jednym megabajcie.

To make its space allocation efficient, SQL Server does not allocate whole extents to tables with small amounts of data.SQL Server has two types of extents:

  • Jednolite fragment s będące własnością pojedynczy obiekt, wszystkie osiem stron w fragment mogą być używane tylko przez obiekt stronie.

  • Mieszane zakresy są współużytkowane przez maksymalnie osiem obiektów.Każdej z ośmiu stron w zakresie może być własnością innego obiektu.

Nowej tabela lub indeks jest zazwyczaj przydzielane stron z mieszanych zakresów.Jeśli tabela lub indeksu powiększa się do punktu, czy jest osiem stron, go następnie przełącza na używać jednolitego zakresy dla kolejnych alokacji.Jeśli tworzysz indeks w istniejącej tabela, który ma wystarczająco dużo wierszy, aby wygenerować osiem stron w indeksie, wszystkie przydziały do indeksu znajdują się w jednolity zakresów.

Mixed and uniform extents