Udostępnij za pośrednictwem


Strona kompresji implementacji

W tym temacie zestawiono jak Database Engine implementuje kompresji strona. Podsumowanie to zawiera podstawowe informacje, aby ułatwić planowanie miejsca, potrzebnych danych.

Uwaga

Szczegółowe informacje o kompresji danych mogą ulec zmianie bez powiadomienia w dodatkach usługa Pack lub wersjach późniejszych.

Kompresja strona jest podobne do tabel, tabela partycji, indeksów i partycji indeksu.Następujący opis strona kompresji dla tabela stosuje się jednakowo do strona kompresji dla wszystkich typów obiektów.W poniższych przykładach skompresować ciągi znaków, ale zarówno prefiks, jak i słownika kompresji stosowane te same zasady na inne typy danych.

Kompresowanie poziom liścia tabel i indeksów z kompresją strona składa się z trzech operacji w następującej kolejności:

  1. Kompresja wiersza

  2. Prefiks kompresji

  3. Słownika kompresji

Kiedy używasz kompresji strona strona poziom non–liść indeksów są kompresowane przy użyciu tylko wiersz kompresji.Aby uzyskać więcej informacji na temat wiersza kompresji zobacz Row Compression Implementation.

Prefiks kompresji

Dla każdej strona, która jest jest skompresowany prefiks kompresji używane są następujące czynności:

  1. Dla każdej kolumna, wartość jest zidentyfikowany, można zmniejszyć ilość miejsca przechowywania wartości w każdej kolumnie.

  2. Wiersz, który reprezentuje wartości prefiks, dla każdej kolumna jest utworzone i przechowywane w strukturze informacji (CI) kompresji, bezpośrednio poniżej nagłówka strona.

  3. Prefiks powtarzających się wartości kolumna zostały zastąpione przez odwołanie do odpowiedniego prefiksu.Jeśli wartość w wierszu jest dokładnie zgodna wartość zaznaczony prefiks, nadal mogą być wskazywane częściowego dopasowania.

Na poniższej ilustracji przedstawiono przykładowej strona tabela, przed kompresją prefiksu.

Page before prefix compression

Na poniższej ilustracji przedstawiono takie same strona po kompresji prefiksu.Prefiks jest przenoszony do nagłówka, a wartości kolumna są zamieniane na odwołania do prefiksu.

Page after prefix compression

Z pierwszej kolumna w pierwszym wierszu 4b wartość wskazuje, że pierwsze cztery znaki prefiksu (aaab) są obecne dla tego wiersza, a także b znaków.W ten sposób aaabb wynikową wartość, która jest oryginalna wartość.

Słownika kompresji

Po przeprowadzeniu kompresji prefiks jest stosowana słownika kompresji.Słownika kompresji przeszukuje powtarzających się wartości w dowolnym miejscu strona i przechowuje je w obszarze CI.W przeciwieństwie do kompresji prefiks słownika kompresji nie jest ograniczone do jednej kolumna.Słownika kompresji można zastąpić powtarzających się wartości, które występują w dowolnym miejscu strona.Na poniższej ilustracji przedstawiono na tej samej stronie po słownika kompresji.

Page after dictionary compression

Należy zauważyć, że wartość 4b odwołano się z różnych kolumn strona.

Gdy pojawia się Strona kompresji

Podczas tworzenia nowej tabela ma strona kompresję, kompresja nie występuje.Jednak metadane dla tabela wskazuje, że kompresji strona powinny być używane.Jak dane są dodawane do pierwszej strona danych, dane są skompresowane wiersza.strona nie jest pełny, kompresji strona jest zdobyte nie korzyści.Gdy strona jest pełny, następny wiersz ma być dodany inicjuje operację kompresji strony.Cała strona jest rozpatrywana; każda kolumna jest wyznaczana dla prefiksu kompresji, a następnie wszystkie kolumny są oceniane słownika kompresji.Jeżeli kompresja strona utworzone za mało miejsca strona dodatkowy wiersz, wiersz został dodany, a dane są oba wiersza i strona skompresowane.Miejsce, w wyniku kompresji strona minus przestrzeń wymaganym do struktury CI nie ma znaczenia, kompresja strona nie jest używany dla tej strona.Przyszłości wiersze albo dopasowanie na nową stronę lub, jeśli ich nie mieszczą się, Nowa strona zostanie dodana do tabela.Podobne do pierwszej strony, Nowa strona nie jest najpierw skompresować strony.

Konwertowania istniejącej tabela, która zawiera dane do kompresji strona każdej strona jest ponownie i oceniane.Odbudowywanie wszystkie strony powoduje, że odbudowywanie tabela, indeks lub partycji.