![]() |
![]() |
Twoje konto | Zarejestruj | Schowek | Kontakt | Pomoc |
![]() Funkcje okna w języku T-SQL dla SQL Server 2019. Analizy danych i jeszcze więcej
Funkcje okna w języku T-SQL dla SQL Server 2019. Analizy danych i jeszcze więcej Większość programistów T-SQL docenia wartość funkcji okna w analizowaniu danych. Potrafią one jednak znacznie więcej, a ostatnie optymalizacje sprawiają, że stały się jeszcze skuteczniejsze. Uznany ekspert T-SQL Itzik Ben-Gan wprowadza przełomowe techniki wykorzystania funkcji okna do realizowania wielu typowych zadań z nieznaną wcześniej elegancją i siłą. Przy użyciu bogatych przykładów kodu prowadzi Czytelnika poprzez funkcje agregujące, rankingowe, statystyczne, przesunięć i zbiorów uporządkowanych. Znajdziemy tu szczegółowy rozdział o optymalizacji oraz kolekcję rozwiązań biznesowych – w tym nowatorskie techniki, które nie są dostępne w żadnej innej książce. MVP Itzik Ben-Gan pokazuje, jak:
O tej książce:
Itzik Ben-Gan, MVP firmy Microsoft w dziedzinie platform danych od roku 1999, jest mentorem i współzałożycielem firmy SolidQ oraz podstawą jej działalności w dziedzinie T-SQL. Prowadził liczne wykłady w dziedzinie zapytań w języku T-SQL, dostrajania zapytań i programowania na całym świecie, Jest autorem licznych książek, w tym Podstawy T-SQL i Zapytania w języku T-SQL, a także programów nauczania Advanced T-SQL Querying, Programming, and Tuning oraz T-SQL Fundamentals prowadzonych przez SolidQ. Pisuje również w witrynach sqlperformance.com, ITProToday and SolidQ. Występował w licznych konferencjach, w tym PASS Summit i SQLBits. Wprowadzenie . ix
O autorze ... xiii 1. Funkcje okna w języku SQL ... 1 Ewolucja funkcji okna .. 2 Podstawy funkcji okna ... 3 Omówienie funkcji okna ..3 Programowanie w oparciu o zbiory lub przy użyciu iteracji/kursora ..... 8 Wady rozwiązań alternatywnych dla funkcji okna . . . . . . . .14 Przedsmak rozwiązań wykorzystujących funkcje okna ..19 Elementy specyfikacji funkcji okna ... 24 Partycjonowanie okna .... 24 Porządek okna ..... 26 Ramy okna .... 28 Elementy kwerendy wspierające funkcje okna .... 29 Logiczne przetwarzanie kwerend ..... 29 Klauzule wspierające funkcje okna ...... 30 Omijanie ograniczeń ..... 35 Propozycja wprowadzenia dodatkowych filtrów ..... 37 Wielokrotne wykorzystywanie definicji okna .... 38 Podsumowanie ..... 39 2. Szczegółowe omówienie funkcji okna ..... 41 Agregujące funkcje okna ..... 41Opis agregujących funkcji okna ..... 41 Wspierane elementy specyfikacji okna ..... 42 Inne pomysły dotyczące funkcji okna .... 65 Agregacje z opcją DISTINCT .... 71 Zagnieżdżanie funkcji grupujących w funkcjach okna ..... 74 Funkcje rankingowe ..... 79 Wspierane elementy specyfikacji okna .... 79 Funkcja ROW_NUMBER .... 79 Funkcja NTILE ..... 85 Funkcje RANK oraz DENSE_RANK 90 Funkcje statystyczne 92 Wspierane elementy specyfikacji okna 92 Funkcje rozkładu rankingu 93 Funkcje rozkładu odwrotnego 95 Funkcje przesunięcia 99 Wspierane elementy specyfikacji okna 99 Funkcje LAG oraz LEAD 99 Funkcje FIRST_VALUE, LAST_VALUE oraz NTH_VALUE 103 RESPECT NULLS | IGNORE NULLS 107 Podsumowanie . 110 3. Funkcje uporządkowanego zbioru 111 Funkcje hipotetycznego zbioru . 112RANK . 112 DENSE_RANK . 115 PERCENT_RANK . 116 CUME_DIST . 117 Uogólnione rozwiązanie 118 Funkcje rozkładu odwrotnego . 121 Funkcje przesunięcia 125 Łączenie ciągów tekstowych 131 Podsumowanie . 132 4. Rozpoznawanie wzorców wierszy w języku SQL . 133 Podstawy 134Funkcjonalność R010, „Rozpoznawanie wzorców wierszy: klauzula FROM” 136 Przykładowe zadanie 136 ONE ROW PER MATCH 141 ALL ROWS PER MATCH 146 Semantyka RUNNING a FINAL 155 Zagnieżdżanie FIRST | LAST wewnątrz PREV | NEXT . 158 Funkcjonalność R020, „Rozpoznawanie wzorców wierszy: klauzula WINDOW” 160 Rozwiązania wykorzystujące rozpoznawanie wzorców wierszy 163 Pierwszych N z grupy . 163 Spis treści vii Pakowanie przedziałów 165 Luki i wyspy 169 Specjalizowane sumy bieżące . 173 Podsumowanie . 179 5. Optymalizacja funkcji okna . 181 Przykładowe dane 182Ogólne zalecenia dotyczące indeksowania . 184 Indeks PPP 185 Złączanie scalające (konkatenacja) . 187 Skanowanie wstecz . 189 Wydajne emulowanie opcji NULLS LAST . 193 Ulepszanie zrównoleglenia przy użyciu operatora APPLY 197 Przetwarzanie w trybie wsadowym . 200 Funkcje rankingowe . 211 ROW_NUMBER 212 NTILE . 213 RANK oraz DENSE_RANK . 215 Przetwarzanie w trybie wsadowym 216 Funkcje agregujące i przesunięcia . 218 Bez specyfikacji porządku oraz ramy . 218 Ze specyfikacją porządku oraz ramy 224 Funkcje rozkładu 238 Funkcje rozkładu rankingu 238 Funkcje rozkładu odwrotnego 240 Przetwarzanie w trybie wsadowym 243 Podsumowanie . 245 6. Rozwiązania T-SQL wykorzystujące funkcje okna . 247 Wirtualna pomocnicza tabela liczb . 248Sekwencje wartości daty i godziny . 251 Sekwencje kluczy 253 Modyfikowanie kolumny przy pomocy unikatowych wartości . 253 Stosowanie zakresu wartości sekwencji . 254 Stronicowanie . 258 Usuwanie powtórzeń . 260 Przestawianie 263 TOP N dla każdej grupy 267 Emulowanie opcji IGNORE NULLS w celu znalezienia ostatniej wartości nie-NULL . 271 Dominanta . 276 Średnie przycięte 281 Sumy bieżące 282 Oparte na zbiorach rozwiązanie wykorzystujące funkcje okna . 285 Oparte na zbiorach rozwiązania wykorzystujące kwerendy podrzędne lub złączenia . 286 Rozwiązanie oparte na kursorze . 288 Rozwiązanie CLR 289 Zagnieżdżone iteracje 292 Modyfikacja wielu wierszy przy użyciu zmiennych . 293 Testy wydajności 296 Maksymalna liczba równoległych przedziałów czasowych . 298 Tradycyjne rozwiązanie oparte na zbiorach 300 Rozwiązania oparte na funkcjach okna . 302 Pakowanie przedziałów czasowych . 308 Tradycyjne rozwiązanie oparte na zbiorach 310 Rozwiązania oparte na funkcjach okna . 312 Luki i wyspy . 317 Luki 319 Wyspy 320 Mediana . 325 Agregacje warunkowe . 328 Sortowanie hierarchii . 331 Podsumowanie . 336 Indeks . 337 |
|