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

Podobne dokumenty