| Termin | Definicja |
|---|---|
| Kolumna sparsowana | Kolumna sparsowana to pole zoptymalizowane pod przechowywanie dużej liczby wartości pustych, oszczędzające miejsce. Jak działa kolumna sparsowana w SQL ServerKolumna sparsowana (ang. sparse column) jest mechanizmem Microsoft SQL Server przeznaczonym dla tabel, w których określona kolumna przyjmuje wartość Mechanizm nie oznacza, że kolumna sparsowana jest po prostu kolumną opcjonalną. Każda kolumna dopuszczająca Kiedy oszczędność miejsca jest rzeczywistaKolumna sparsowana przynosi korzyść przede wszystkim wtedy, gdy większość rekordów nie zawiera żadnej wartości w danym polu. Dotyczy to na przykład tabel opisujących wiele opcjonalnych cech obiektów, gdzie jeden rekord korzysta tylko z niewielkiej części dostępnych atrybutów. Jeżeli jednak kolumna zawiera wartości w dużej części wierszy, oszczędność może zniknąć, ponieważ zapis niepustej wartości w kolumnie sparsowanej ma dodatkowy narzut magazynowy względem zwykłej kolumny. Dokładny efekt zależy od typu danych, liczby rekordów, udziału wartości Odczyt, zapis i indeksowanie wartości NULLW zapytaniach kolumna sparsowana zachowuje się jak zwykła kolumna tego samego typu. Można używać jej w warunkach Kolumny sparsowane mogą być indeksowane, ale wybór indeksu powinien wynikać z rzeczywistych zapytań i selektywności danych. Indeks na polu, które niemal zawsze ma wartość Kolumna zestawiająca i kontrola projektu tabeliSQL Server udostępnia również mechanizm column set, czyli kolumnę zestawiającą, która pozwala traktować wiele kolumn sparsowanych jako pojedynczy zestaw danych w formacie XML. Kolumna zestawiająca jest tworzona jako kolumna obliczana zarządzana przez SQL Server i może ułatwiać pracę z tabelami posiadającymi dużą liczbę opcjonalnych atrybutów. Nie zastępuje ona jednak zwykłych kolumn sparsowanych: wartości nadal należą do konkretnych pól, a sposób zapisu i odczytu przez aplikację musi uwzględniać strukturę tabeli. Przed zastosowaniem tego rozwiązania trzeba zweryfikować zgodność używanych typów danych, ograniczenia indeksów, wymagania aplikacji oraz wpływ na kopie zapasowe i migracje schematu. Warto również ustalić, czy problem rzeczywiście wynika z dużej liczby pustych pól. W wielu przypadkach bardziej odpowiedni może być model relacyjny z tabelą wartości opcjonalnych, ale taka decyzja zależy od relacji między atrybutami, oczekiwanych zapytań i integralności danych. Kolumna sparsowana jest konkretną funkcją SQL Server, a nie uniwersalnym zamiennikiem normalizacji tabeli. |