| Termin | Definicja |
|---|---|
| CREATE COLUMNSTORE INDEX | Polecenie CREATE COLUMNSTORE INDEX tworzy nieklastrowany indeks w formacie kolumnowym dla wybranych kolumn tabeli. CREATE COLUMNSTORE INDEX w SQL Server
Przykładowa instrukcja ma postać Segmenty kolumnowe, grupy wierszy i kompresjaSQL Server organizuje dane indeksu columnstore w grupy wierszy, czyli rowgroups, a wartości w poszczególnych kolumnach zapisuje w odrębnych segmentach kolumnowych. Taki układ pozwala odczytywać tylko kolumny potrzebne danemu zapytaniu, zamiast pobierać całą szerokość każdego wiersza. Segment może zawierać metadane opisujące zakres wartości, dlatego silnik ma możliwość pominięcia segmentów, które nie mogą zawierać rekordów spełniających predykat zapytania. Mechanizm ten nosi nazwę segment elimination i jest szczególnie użyteczny przy filtrowaniu po kolumnach o uporządkowanych lub względnie skupionych wartościach. Indeksy columnstore wykorzystują kompresję zoptymalizowaną dla danych kolumnowych. Skuteczność kompresji zależy między innymi od typu danych, powtarzalności wartości, liczby kolumn oraz sposobu napływania rekordów. Zapytania agregujące, takie jak obliczanie sum, średnich lub liczby rekordów dla dużych zbiorów, mogą korzystać z przetwarzania paczkowego, określanego jako batch mode. W tym trybie SQL Server przetwarza grupy wartości zamiast wykonywać tę samą operację osobno dla każdego wiersza. Nie oznacza to jednak, że każde zapytanie automatycznie przyspieszy po utworzeniu indeksu. Optymalizator musi uznać indeks za korzystny, a plan wykonania zależy od predykatów, statystyk, selektywności filtrów i rozmiaru danych. Wpływ indeksu nieklastrowanego na modyfikacje tabeliNieklastrowany indeks columnstore może współistnieć z operacjami Przed utworzeniem indeksu należy sprawdzić charakter tabeli oraz zapytania korzystające z jej danych. Konstrukcja jest zwykle bardziej uzasadniona wtedy, gdy zapytania odczytują wiele rekordów i wykonują agregacje, grupowanie lub skanowanie wybranych kolumn. Jeżeli tabela jest mała albo dominuje w niej obsługa pojedynczych rekordów na podstawie klucza, klasyczny indeks wierszowy może być lepiej dopasowany. W praktyce należy porównać plany wykonania przed i po zmianie, obserwować czas odczytu, koszt operacji modyfikujących oraz rozmiar indeksu. Sam fakt poprawnego wykonania polecenia nie jest dowodem, że indeks poprawił działanie aplikacji. Weryfikacja definicji i planu wykonania w SQL ServerPo utworzeniu indeksu można sprawdzić jego definicję oraz właściwości za pomocą widoków katalogowych SQL Server, między innymi Diagnostyka powinna obejmować również statystyki i aktualność danych. Zmienny rozkład wartości może spowodować, że plan przygotowany dla wcześniejszego stanu tabeli przestanie być korzystny. Warto analizować rzeczywiste zapytania, a nie tylko test wykonany na niewielkim zbiorze. Należy także zweryfikować uprawnienia wymagane do zmiany schematu tabeli oraz wpływ budowania indeksu na zasoby serwera, ponieważ tworzenie i przebudowa dużej struktury może zużywać procesor, pamięć, przestrzeń dyskową oraz czasowo obciążać operacje wykonywane równolegle. W tym zastosowaniu poprawność polecenia |