| Termin | Definicja |
|---|---|
| Reorganizacja Columnstore Index | Reorganizacja Columnstore Index scala mniejsze fragmenty danych, poprawiając kompresję i wydajność odczytu. Jak działa reorganizacja indeksu kolumnowego w SQL ServerReorganizacja Columnstore Index w Microsoft SQL Server jest operacją wykonywaną poleceniem Podczas reorganizacji SQL Server wykonuje czynności porządkujące strukturę indeksu. Obejmują one między innymi kompresowanie zamkniętych grup delta store oraz łączenie mniejszych skompresowanych rowgroups, gdy jest to możliwe i uzasadnione zawartością danych. Grupa delta store przechowuje nowe lub zmodyfikowane wiersze w postaci indeksu B-tree, zanim zostaną przeniesione do formatu columnstore. Reorganizacja może więc zmniejszyć liczbę małych grup, poprawić stopień kompresji i ograniczyć liczbę struktur analizowanych przez zapytanie. Rowgroups, delta store i wpływ operacji DMLColumnstore Index szczególnie dobrze działa wtedy, gdy rowgroups zawierają odpowiednio dużo wierszy i są zapisane w skompresowanej postaci. Wstawianie danych trafia początkowo do deltastore, a po osiągnięciu warunków wymaganych przez mechanizm tuple mover grupa może zostać zamknięta i skompresowana. Usuwanie wierszy nie musi natychmiast fizycznie usuwać ich z segmentu. SQL Server oznacza takie rekordy jako usunięte, a ich obecność może zwiększać koszt skanowania oraz obniżać efektywną kompresję. Częste aktualizacje i usunięcia mogą doprowadzić do powstania wielu małych lub częściowo pustych rowgroups. Reorganizacja pomaga uporządkować taki indeks, ale nie jest uniwersalnym zamiennikiem pełnej przebudowy. Jej zadaniem jest utrzymanie istniejącej struktury przy mniejszym zakresie zmian. W przypadku poważnej fragmentacji, nieprawidłowego projektu indeksu albo konieczności odtworzenia wszystkich segmentów z nowymi metadanymi może być potrzebne polecenie Uruchomienie i kontrola reorganizacji w SQL ServerDla konkretnego indeksu reorganizację można uruchomić na przykład poleceniem Przed podjęciem decyzji warto sprawdzić stan rowgroups w widoku katalogowym Ocena efektu po wykonaniu reorganizacjiPo zakończeniu operacji należy ponownie odczytać statystyki rowgroups i porównać je ze stanem początkowym. Warto sprawdzić, czy zmniejszyła się liczba małych grup, czy zamknięte grupy zostały przeniesione do formatu skompresowanego oraz czy poprawił się udział użytecznych wierszy w grupach. Równolegle powinno się zmierzyć rzeczywisty czas i liczbę odczytów zapytań korzystających z indeksu. Sama zmiana liczby rowgroups nie gwarantuje przyspieszenia, jeżeli zapytanie nie filtruje kolumn objętych indeksem, korzysta z nieaktualnych statystyk albo wykonuje kosztowne operacje niezwiązane z odczytem segmentów. Podczas diagnostyki trzeba także obserwować blokowanie, zużycie CPU, czas oczekiwania na operacje wejścia-wyjścia oraz rozmiar tabeli i indeksu. Jeśli reorganizacja nie przynosi oczekiwanej poprawy, należy zweryfikować schemat partycjonowania, kolejność i selektywność predykatów, częstotliwość modyfikacji danych oraz plan wykonania zapytania. W środowisku z SQL Server konserwacja Columnstore Index powinna być zaplanowana na podstawie obserwowanej kondycji rowgroups i profilu obciążenia, a nie uruchamiana bezwarunkowo po każdym imporcie danych. Dotyczy to zwłaszcza dużych baz, w których nieuzasadniona reorganizacja może konkurować o zasoby z normalnymi operacjami odczytu i zapisu. |