| Termin | Definicja |
|---|---|
| Użycie Columnstore w Query Store | Wykorzystanie Columnstore rejestrowane w Query Store pozwala porównać wydajność zapytań przed i po zmianie typu indeksu. Columnstore i Query Store w SQL ServerColumnstore to sposób organizacji indeksu, w którym dane są przechowywane i kompresowane według kolumn, a nie przede wszystkim według wierszy. Taki układ jest przeznaczony głównie do zapytań analitycznych obejmujących wiele rekordów, lecz odczytujących ograniczony zestaw kolumn. SQL Server udostępnia między innymi klastrowane i nieklastrowane indeksy columnstore. Zmiana istniejącego indeksu wierszowego na columnstore może zmienić plan wykonania, sposób skanowania danych, poziom kompresji oraz ilość operacji wejścia i wyjścia. Query Store rejestruje informacje o wykonywaniu zapytań, ich planach oraz statystykach wydajnościowych w czasie. Dzięki temu można porównać zachowanie tego samego zapytania przed utworzeniem indeksu columnstore i po jego zastosowaniu. Porównanie powinno dotyczyć między innymi czasu trwania, zużycia procesora, liczby odczytów logicznych lub innych dostępnych metryk raportowanych przez Query Store. Sam fakt pojawienia się planu z operatorem związanym z columnstore nie dowodzi jeszcze poprawy, ponieważ wynik zależy od danych, filtrów, selektywności predykatów i aktualności statystyk. Porównanie planów przed i po zmianie indeksuAnalizę należy rozpocząć od zidentyfikowania zapytania w Query Store na podstawie tekstu, identyfikatora zapytania albo powiązanego obiektu. Następnie trzeba ustalić przedział czasu obejmujący okres przed zmianą indeksu oraz okres po zmianie. Istotne jest rozróżnienie planów wykonania, ponieważ SQL Server może używać różnych planów dla tego samego zapytania. W raporcie warto sprawdzić, czy plan wykorzystuje skanowanie indeksu columnstore, przetwarzanie wsadowe oraz predykaty ograniczające zakres odczytu. Porównanie powinno uwzględniać nie tylko wartość średnią, ale również liczbę wykonań, wartości maksymalne i rozrzut wyników. Jeżeli po zmianie indeksu zapytanie jest wykonywane z innymi parametrami, proste zestawienie średnich może prowadzić do błędnych wniosków. Należy także sprawdzić, czy różnica nie wynika ze zmiany wolumenu danych, pamięci podręcznej, współbieżności albo innych zmian schematu. Query Store pokazuje historię zarejestrowanych wykonań, ale nie zastępuje analizy aktualnego planu i rzeczywistych warunków obciążenia. Interpretacja zarejestrowanego użycia ColumnstoreWykorzystanie indeksu columnstore może zmniejszyć koszt odczytu dużych zbiorów danych, ponieważ SQL Server może pobierać tylko potrzebne kolumny i korzystać z kompresji. W odpowiednich planach może pojawić się tryb wykonywania wsadowego, w którym operator przetwarza grupy wierszy zamiast pojedynczych rekordów. Nie każda operacja na tabeli columnstore będzie jednak wykonywana w tym trybie, a zapytania o małej liczbie wyników mogą nie uzyskać przewagi nad dobrze dobranym indeksem wierszowym. W Query Store należy zweryfikować, czy po zmianie indeksu zmieniły się rzeczywiste metryki zapytania, a nie tylko jego plan graficzny. Warto ocenić czas trwania, zużycie CPU, liczbę odczytów oraz częstotliwość wykonywania. Trzeba również sprawdzić skutki uboczne: modyfikacje danych mogą mieć inny koszt, przebudowa indeksu może wymagać zasobów, a dodatkowe indeksy mogą zwiększać zajętość miejsca i obciążenie operacji INSERT, UPDATE lub DELETE. Wnioskiem powinno być stwierdzenie, dla jakiego obciążenia columnstore przynosi korzyść, a nie ogólna teza, że ten typ indeksu jest zawsze szybszy. Bezpieczna walidacja zmiany w środowisku SQL ServerPrzed zmianą indeksu należy zachować informację o istniejących indeksach, definicji tabeli, statystykach oraz planach rejestrowanych przez Query Store. Po wdrożeniu zmiany trzeba obserwować ten sam zestaw zapytań w porównywalnym okresie i odnotować zarówno poprawę, jak i regresje. Jeżeli wydajność pogorszy się tylko dla części parametrów, problem może dotyczyć doboru planu, rozkładu danych albo nieadekwatnych statystyk. W takiej sytuacji potrzebna jest dalsza analiza planu, a nie automatyczne wymuszanie planu na podstawie pojedynczego pomiaru. Diagnostyka techniczna może obejmować sprawdzenie definicji indeksu, planów wykonania i historii zapytań w Query Store, a także porównanie obciążenia przed i po zmianie. Przy ocenie należy zachować rozdział między obserwacją a interpretacją: Query Store wskazuje, jak zapytanie zachowywało się w zarejestrowanych warunkach, lecz nie gwarantuje, że identyczny rezultat wystąpi przy innym zestawie danych lub innej współbieżności. Takie podejście pozwala ocenić użycie Columnstore na podstawie powtarzalnych pomiarów, zamiast opierać decyzję wyłącznie na nazwie operatora w planie. |