Microsoft SQL Server 2012 : optymalizacja kwerend T
Transkrypt
Microsoft SQL Server 2012 : optymalizacja kwerend T
Microsoft SQL Server 2012 : optymalizacja kwerend T-SQL przy uŜyciu funkcji okna / Itzik Ben-Gan. – Warszawa, 2012 Spis treści Przedmowa vii Wprowadzenie ix 1 Funkcje okna w języku SQL Wprowadzenie do funkcji okna Omówienie funkcji okna Programowanie w oparciu o zbiory lub przy uŜyciu iteracji/kursora Wady rozwiązań alternatywnych dla funkcji okna Przedsmak rozwiązań wykorzystujących funkcje okna Elementy specyfikacji funkcji okna Partycjonowanie Porządek Ramy Elementy kwerendy wspierające funkcje okna Logiczne przetwarzanie kwerend Klauzule wspierające funkcje okna Omijanie ograniczeń Propozycja wprowadzenia dodatkowych filtrów Wielokrotne wykorzystywanie definicji okna Podsumowanie 1 2 2 5 12 17 22 22 24 25 26 26 27 32 34 34 36 2 Szczegółowe omówienie funkcji okna Agregujące funkcje okna Opis agregujących funkcji okna Wspierane elementy specyfikacji okna Propozycje dodatkowych metod filtrowania Agregacje z opcją DISTINCT ZagnieŜdŜone agregacje Funkcje rankingowe Wspierane elementy specyfikacji okna Funkcja ROW_NUMBER Funkcja NTILE Funkcje RANK oraz DENSE_RANK Funkcje rozkładu Wspierane elementy specyfikacji okna Funkcje rozkładu rankingu Funkcje rozkładu odwrotnego 37 37 38 38 55 58 60 64 65 65 71 75 76 77 77 80 Funkcje przesunięcia Wspierane elementy specyfikacji okna Funkcje LAG oraz LEAD Funkcje FlRST_VALUE, LAST_VALUE oraz NTH_VALUE Podsumowanie 83 83 84 86 90 3 Funkcje uporządkowanego zbioru Funkcje hipotetycznego zbioru RANK DENSE_RANK PERCENT_RANK CUME_DIST Uogólnione rozwiązanie Funkcje rozkładu odwrotnego Funkcje przesunięcia Łączenie ciągów tekstowych Podsumowanie 91 92 92 95 96 97 98 101 105 110 112 4 Optymalizacja funkcji okna Przykładowe dane Ogólne zalecenia dotyczące indeksowania Indeks PPP Skanowanie wstecz Indeksy typu COLUMNSTORE Funkcje rankingowe ROW_NUMBER NTILE RANK oraz DENSE_RANK Dostosowanie mechanizmu równoległości przy uŜyciu operatora APPLY Funkcje agregujące i przesunięcia Bez specyfikacji porządku oraz ramy Ze specyfikacją porządku oraz ramy Funkcje rozkładu Funkcje rozkładu rankingu Funkcje rozkładu odwrotnego Podsumowanie 113 113 116 116 118 121 121 122 124 125 126 130 130 133 144 144 146 149 5 Rozwiązania T-SQL wykorzystujące funkcje okna Wirtualna pomocnicza tabela liczb Sekwencje wartości daty i godziny Sekwencje kluczy Modyfikowanie kolumny przy pomocy unikatowych wartości Stosowanie zakresu wartości sekwencji Stronicowanie Usuwanie powtórzeń 151 151 155 157 157 158 162 165 Przestawianie TOP N dla kaŜdej grupy Dominanta Sumy bieŜące Oparte na zbiorach rozwiązanie wykorzystujące funkcje okna Oparte na zbiorach rozwiązania wykorzystujące kwerendy podrzędne lub złączenia Rozwiązanie oparte na kursorze Rozwiązanie CLR ZagnieŜdŜone iteracje Modyfikacja wielu wierszy przy uŜyciu zmiennych Testy wydajności Maksymalna liczba równoległych przedziałów czasowych Tradycyjne rozwiązanie oparte na zbiorach Rozwiązanie oparte na kursorze Rozwiązania oparte na funkcjach okna Testy wydajności Kompresowanie przedziałów czasowych Tradycyjne rozwiązanie oparte na zbiorach Rozwiązania oparte na funkcjach okna Luki i wyspy Luki Wyspy Mediana Agregacje warunkowe Sortowanie hierarchii Podsumowanie 168 171 175 179 182 182 184 186 188 190 192 193 195 198 201 204 204 207 208 218 219 221 228 231 233 237 Indeks 239 oprac. BPK