tutaj - Grzesiek Bartosik

advertisement
Mechanizm kompresji danych w
SQL Server 2008
Grzegorz Bartosik
Agenda
Kompresja wierszy
Kompresja stron
Kompresja vs. wydajność
Podsumowanie
Kompresja wierszy
opiera się na typach danych (sposobie zapisu
wartości)
polega na przechowywaniu danych w słowach o
zmiennej długości
dostępne dla następujących typów danych: bigint,
binary, bit, char, datetime, datetime2,
datetimeoffset, decimal, float, int, money, char,
numeric, real, smallint, smallmoney,
timestamp/rowversion
Kompresja wierszy - przykład
Data
Czas
2008-09-30 15:00
Kompresja wierszy - howto
alter table <nazwa_tabeli> rebuild with
(data_compression=row)
exec sp_estimate_data_compression_savings
'<schemat>', '<tabela>', <id indeksu>, <nr partycji>,
'<typ kompresji>';
Kompresja indeksów
• jeśli na tabeli z indeksem zgrupowanym włączana jest
kompresja, indeks otrzymuje takie sam rodzaj
kompresji;
• jeśli na tabeli jest włączona kompresja, a następnie
tworzymy na niej indeks zgrupowany, to dziedziczy
on ustawienia kompresji z tabeli (chyba że zostało
wyspecyfikowane inaczej);
• indeksy niezgrupowane nie dziedziczą ustawień
kompresji po tabeli, na której są tworzone
Kompresja stron
niezależny od typu danych
opiera się całkowicie na powtarzających się ciągach
bitów
można podzielić na dwie fazy
kompresję prefiksów
kompresja słownikowa
procesy postępują niezależne od siebie, ale
kompresja słownikowa korzysta ze stron
skompresowanych w pierwszym etapie
Kompresja prefiksów
Kompresja słownikowa
Kompresja - zalety
Serwer bazy danych może umieścić więcej stron w
buforze stron, przy tej samej ilości pamięci
operacyjnej;
Współczynnik kompresji od 2 do 6
Przyspieszenie przy dużych operacjach na dysku;
Łatwość implementacji, dobre narzędzia, dobra
dokumentacja;
Kompresja - wady
Obciążenie operacji DML
Dostęp do bufora stron również jest obciążony
koniecznością dekompresji strony
Kompresja - uwagi
Kompresja stron jest bardziej obciążająca dla
procesora niż kompresja wierszy;
Kompresja stron lepiej kompresuje dane niż
kompresja wierszy;
Poziom kompresji tabeli (na której jest założony
indeks zgrupowany) jest zależny od rozkładu danych;
Funkcjonalność ta występuje tylko w edycji
Enterprise i Developer serwera SQL 2008.
Download