| Termin | Definicja |
|---|---|
| Kompresja danych | Kompresja danych to funkcja SQL Server redukująca miejsce zajmowane przez tabele i indeksy na dysku. Na czym polega kompresja danych w SQL ServerKompresja danych w SQL Server zmniejsza ilość miejsca zajmowanego przez dane tabel i indeksów. Mechanizm działa w warstwie aparatu składowania i może być ustawiany dla tabel, indeksów oraz poszczególnych partycji. Kompresja nie zmienia logicznej zawartości rekordów widzianej przez zapytania. SQL Server nadal zwraca te same kolumny i wartości, ale przechowuje je w bardziej zwartej reprezentacji. Dzięki temu na tej samej powierzchni dyskowej można przechować więcej stron danych, a odczyt dużych zbiorów może wymagać pobrania mniejszej liczby stron. W SQL Server podstawowe tryby kompresji danych w tabelach i indeksach to ROW, PAGE i zakres zastosowaniaTryb Ustawienie kompresji dotyczy konkretnego obiektu. Tabela może mieć inną opcję niż jej indeksy, dlatego sama kompresja tabeli nie oznacza automatycznie, że wszystkie indeksy zostały skompresowane w ten sam sposób. Dla tabel partycjonowanych można ustawić różne tryby dla różnych partycji, co pozwala inaczej traktować na przykład dane historyczne i bieżące. Indeksy nieklastrowane przechowują własne struktury stron, więc ich rozmiar należy analizować niezależnie. Przy planowaniu zmiany trzeba również uwzględnić indeks klastrowany, ponieważ w tabeli z takim indeksem jego strony są jednocześnie głównym magazynem danych. Konfiguracja i ocena efektuKomendą używaną do zmiany kompresji jest polecenie Przed wdrożeniem warto oszacować możliwe oszczędności dla konkretnej tabeli lub indeksu. SQL Server udostępnia do tego procedurę systemową Wpływ na wydajność i diagnostykęKompresja zmniejsza liczbę stron, które trzeba odczytać z dysku lub pamięci, ale wymaga pracy procesora podczas zapisu i odczytu skompresowanych danych. Nie ma więc uniwersalnej reguły, że każda tabela po kompresji będzie działała szybciej. Zapytania skanujące duże zakresy często korzystają z mniejszej liczby odczytów logicznych, natomiast obciążenia o wysokiej intensywności zapisu mogą odczuć dodatkowy koszt kodowania danych. Korzyść może być również ograniczona, gdy dane są już zwarte albo zawierają mało powtarzalnych wartości. Dobór trybu należy oprzeć na pomiarach wykonanych dla rzeczywistego obciążenia. Trzeba porównać rozmiar tabeli i indeksów, liczbę odczytów logicznych, czas zapytań, użycie procesora oraz czas operacji modyfikujących dane. Szczególną uwagę należy zwrócić na przebudowy indeksów i tabel, ponieważ mogą one czasowo zwiększyć wykorzystanie dysku, procesora i dziennika transakcji. Kompresja nie zastępuje właściwego projektowania indeksów, ograniczania zbędnych danych ani archiwizacji. Jest właściwością fizycznego sposobu przechowywania, którą należy dobierać osobno dla obiektów o różnych charakterystykach dostępu. |