Używamy cookies, aby ułatwić korzystanie z Portalu. Możesz określić warunki przechowywania, dostępu do plików cookies w Twojej przeglądarce. Dowiedz się więcej.
strona główna Strona główna | Nowości | Promocje | Zapowiedzi Twoje konto | Zarejestruj | Schowek | Kontakt | Pomoc
mapa działów
Szukaj: szukanie zaawansowane
Koszyk
Książki \ Aplikacje \ Excel

Kompletny przewodnik po DAX, wyd. 2 rozszerzone. Analiza biznesowa przy użyciu Microsoft Power BI, SQL Server Analysis Services i Excel Język: 1

978-83-7541-405-9

Cena Brutto: 119.70

Cena netto: 114.00

Ilość:
Wersja: Drukowana
Autor Marco Russo, Alberto Ferrari
Liczba_stron 864
Wydawnictwo Microsoft Press
Oprawa miękka
Data_Wydania 2019-10-18
Kompletny przewodnik po DAX, wyd. 2 rozszerzone. Analiza biznesowa przy użyciu Microsoft Power BI, SQL Server Analysis Services i Excel


Najbardziej wyczerpujący przewodnik po języku DAX, obecnie rozszerzony i uzupełniony o najnowsze funkcje i nowoczesne zalecane praktyki, prezentujący opracowany w firmie Microsoft język na potrzeby analiz biznesowych i modelowania danych. Czołowi eksperci w dziedzinie Microsoft BI pomagają opanować wszystkie elementy systemu, od funkcji tablicowych po zaawansowany kod i optymalizację modelu. Dowiedz się, co naprawdę dzieje się przy wykonywaniu poleceń DAX i jak użyć tej wiedzy do pisania szybkiego i niezawodnego kodu. Wydanie to skupia się na przykładach, które można budować i uruchamiać przy użyciu bezpłatnego narzędzia Power BI Desktop i pomaga wydobyć najwięcej korzyści ze składni zmiennych (VAR) w Power BI, Excelu lub Analysis Services. Pragniesz wykorzystać wszystkie możliwości języka? To książka, której potrzebujesz.
  • Wykonuj skuteczną analizę danych w programach Power BI, SQL Server i Excel
  • Poznaj podstawowe koncepcje DAX, w tym kolumny obliczane, miary i obsługę błędów
  • Wydajnie korzystaj z zaawansowanych funkcji tablicowych
  • Opanuj istotę kontekstów wykonania oraz funkcje ­CALCULATE i CALCULATETABLE
  • Wykonuj obliczenia czasowe i oparte na niestandardowych hierarchiach
  • Korzystaj z grup obliczeń i elementów obliczanych
  • Używaj składni zmiennych do tworzenia bardziej czytelnego, zrozumiałego kodu
  • Wyrażaj różnorodne nietypowe relacje, w tym relacje wiele-do-wielu i filtry dwukierunkowe
  • Opanuj zaawansowane techniki optymalizacyjne, aby zwiększyć wydajność agregacji
  • Optymalizuj modele danych
  • Mierz wydajność zapytań przy użyciu DAX Studio i dowiedz się, jak optymalizować kod DAX
O tej książce

Dla zaawansowanych użytkowników programu Excel oraz anlityków BI używających SQL Server Analysis Services lub Power BI

O autorach

Marco Russo i Alberto Ferrari są współzałożycielami strony sqlbi.com, w której regularnie publikują artykuły na temat Microsoft PowerPivot, DAX, Power BI oraz SQL Server Analysis Services. Występują też na głównych międzynarodowych konferencjach, takich jak TechEd, Ignite, PASS Summit czy SQLBits. Obydwaj wykładają teorię analizy biznesowej (BI) oraz technologie Microsoft BI począwszy od roku 1999. Książki ich autorstwa obejmują Excel 2013: Budowanie modeli danych przy użyciu PowerPivot, Analyzing Data with Power BI and Power Pivot for Excel oraz Introducing Microsoft Power BI.



Przedmowa . . . . . . . . .xv
Wstęp do drugiego wydania  . . . . . . . . . . .xvii
Wstęp . . . . . . . . . xix
Podziękowania . . . . .xxv
O autorach . . . . . . .xxvii
 

1. Czym jest DAX?  . . . . . . . . . . . . . 1
Istota modelu danych 2
Zrozumienie kierunku relacji  . . . . . . . 4
DAX dla użytkowników Excela  . . . . . . . . . . . 6
Komórki kontra tabele  . . . . . . . . . . . . 6
Excel i DAX: dwa języki funkcyjne  . . 9
Korzystanie z iteratorów  . . . . . . . . . . 9
DAX wymaga nieco teorii  . . . . . . . . 10
DAX dla programistów SQL  . . . . . . . . . . . . 11
Obsługiwanie relacji  . . . . . . . . . . . . . 11
DAX jest językiem funkcyjnym  . . . . 12
DAX jako język programowania i zapytań  . . . . . . 13
Podzapytania i warunki w DAX i SQL  . . . . . . . . . . . 13
DAX dla programistów MDX  . . . . . . . . . . . . 14
Model wielowymiarowy kontra tabelaryczny  . . . . 14
DAX jako język programowania i zapytań  . . . . . . 15
Hierarchie . . . . 15
Obliczenia na poziomie liści  . . . . . . 17
DAX dla użytkowników Power BI  . . . . . . . . 17
 

2. Wprowadzenie do DAX  . . . . . . . . 19
Istota obliczeń DAX . 19
Typy danych DAX  . . . . . . . . . . . . . . . 21
Operatory języka DAX  . . . . . . . . . . . 26
Konstruktory tabel  . . . . . . . . . . . . . . 27
Wyrażenia warunkowe  . . . . . . . . . . . 28
Istota kolumn obliczanych i miar  . . . . . . . . 29
Kolumny obliczane  . . . . . . . . . . . . . . 29
Miary . . . . . . . . 31
Zmienne . . . . . . . . . . . 35
Obsługa błędów w wyrażeniach DAX  . . . . 36
Błędy konwersji  . . . . . . . . . . . . . . . . . 36
Błędy w operacjach arytmetycznych  . . . . . . . . . . . 37
Przechwytywanie błędów  . . . . . . . . 41
Generowanie błędów  . . . . . . . . . . . . 44
Formatowanie kodu DAX  . . . . . . . . . . . . . . 45
Wprowadzenie do iteratorów i funkcji agregujących  . . . 49
Korzystanie z podstawowych funkcji DAX  . . . . . . .  52
Funkcje agregujące  . . . . . . . . . . . . . . 52
Funkcje logiczne  . . . . . . . . . . . . . . . . 54
Funkcje informacyjne  . . . . . . . . . . . . 56
Funkcje matematyczne  . . . . . . . . . . 57
Funkcje trygonometryczne  . . . . . . . 58
Funkcje tekstowe  . . . . . . . . . . . . . . . 58
Funkcje konwersji  . . . . . . . . . . . . . . . 59
Funkcje daty i czasu  . . . . . . . . . . . . . 60
Funkcje relacyjne  . . . . . . . . . . . . . . . . 61
Podsumowanie . . . . . 64
 

3. Podstawowe funkcje tablicowe  . 65
Wprowadzenie do funkcji tablicowych  . . . 65
Wprowadzenie do składni polecenia EVALUATE  . . . . . . . 68
Istota funkcji FILTER . 70
Funkcje ALL i ALLEXCEPT . . . . . . . . . . . . . . . 73
Funkcje VALUES, DISTINCT i puste wiersze  . . . . . . . . . . . 78
Używanie tabel jako wartości skalarnych  . . . . . . . 83
Funkcja ALLSELECTED  . . . . . . . . . . . . . . . . . 86
Podsumowanie . . . . . 88
 

4. Istota kontekstów wykonania . . . 89
Wprowadzenie do kontekstów wykonania  90
Istota kontekstów filtru  . . . . . . . . . . 91
Kontekst wiersza  . . . . . . . . . . . . . . . . 96
Sprawdzenie zrozumienia kontekstów wykonania  . . . . . 99
Użycie funkcji SUM w kolumnie obliczanej  . . . . . 99
Użycie kolumn w mierze  . . . . . . . . 100
Tworzenie kontekstu wiersza poprzez iteratory  . . . . . . 101
Zagnieżdżone konteksty wiersza w różnych tabelach . . . . . . . . . . . . . . . . . . . 102
Zagnieżdżone konteksty wiersza w tej samej tabeli . . . . . . . . . . . . . . . . . . . . . 104
Korzystanie z funkcji EARLIER  . . . . 109
Iteratory FILTER, ALL i interakcje kontekstów  . . . . . . . . . 111
Praca z wieloma tabelami  . . . . . . . . . . . . . 114
Kontekst wiersza a relacje  . . . . . . . 115
Kontekst filtru a relacje  . . . . . . . . . 119
Stosowanie funkcji DISTINCT i SUMMARIZE w kontekstach filtru . . . . . . . . . . . . . . . 123
Podsumowanie . . . . 127
 

5. Funkcje CALCULATE i CALCULATETABLE  . . . . 129
Funkcja CALCULATE 129
Tworzenie kontekstu filtru  . . . . . . . 130
Przedstawiamy funkcję CALCULATE . . . . . . . . . . . 134
Wykorzystanie CALCULATE do obliczania udziału procentowego . . . . . . . . . 139
Funkcja KEEPFILTERS  . . . . . . . . . . . 151
Filtrowanie pojedynczej kolumny  . 155
Złożone warunki filtrowania  . . . . . 157
Kolejność przetwarzania w funkcji CALCULATE  . 161
Przejście kontekstu . 166
Przypomnienie wiadomości o kontekście wiersza i kontekście filtru . . . . . . . 166
Wprowadzenie do przejścia kontekstu  . . . . . . . . 169
Przejście kontekstu w kolumnach obliczanych  . 172
Przejście kontekstu dla miar  . . . . . 175
Zależności cykliczne 179
Modyfikatory funkcji CALCULATE  . . . . . . 183
Modyfikator USERELATIONSHIP  . . 184
Modyfikator CROSSFILTER  . . . . . . . 187
Modyfikator KEEPFILTERS  . . . . . . . 188
Istota funkcji ALL w CALCULATE  . . 189
ALL i ALLSELECTED bez żadnych parametrów  . . 191
Reguły dotyczące CALCULATE  . . . . . . . . . 192
 

6. Zmienne . . 195
Wprowadzenie do składni VAR  . . . . . . . . 195
Zmienne są stałymi . 197
Zakres zmiennej . . . 199
Korzystanie ze zmiennych tablicowych  . . 202
Istota leniwego wartościowania  . . . . . . . . 203
Typowe wzorce wykorzystania zmiennych  . . . . . . . . . . . 205
Wnioski . . . . . . . . . . . 207
 

7. Korzystanie z iteratorów i CALCULATE  . . . . . . 209
Korzystanie z iteratorów  . . . . . . . . . . . . . . 209
Istota kardynalności iteratora  . . . . 210
Wykorzystywanie przejścia kontekstu w iteratorach . . . . . . . . . . . . . . . . . . . . . 213
Korzystanie z CONCATENATEX  . . . 217
Iteratory zwracające tabele  . . . . . . 220
Rozwiązywanie typowych scenariuszy przy użyciu iteratorów . . . . . . . . . . . . . . . . . . 223
Obliczanie średnich i średnich kroczących  . . . . . 223
Korzystanie z funkcji RANKX  . . . . . 227
Zmienianie granularności obliczeń  . . . . . . . . . . . 235
Podsumowanie . . . . 240
 

8. Funkcje analizy czasowej  . . . . . . 241
Wprowadzenie do analizy czasowej  . . . . 241
Automatyczne funkcje Daty/czasu w Power BI  . 242
Automatyczne kolumny dat w Power Pivot for Excel . . . . . . . . . . . . . . . . . . . . 243
Szablon tabeli kalendarzowej w Power Pivot for Excel . . . . . . . . . . . . . . . . . . . 243
Budowanie tabeli kalendarzowej  . . . . . . . 245
Korzystanie z funkcji CALENDAR i CALENDARAUTO . . . . . . . . . . . . . . . . . . . . 246
Praca z wieloma datami  . . . . . . . . . . . . . . . 249
Obsługa wielu relacji do tabeli Date  . . . . . . . . . . 250
Obsługiwanie wielu tabel kalendarzowych . . . . . 252
Wprowadzenie do analizy czasowej  . . . . 254
Ustawienie Mark as Date Table  . . . 258
Przedstawiamy podstawowe funkcje analizy czasowej  260
Od początku okresu (roku, kwartału, miesiąca)  . 261
Obliczanie wartości dla wcześniejszych okresów  264
Łączenie funkcji analizy czasowej  . 267
Obliczanie różnic względem wcześniejszych okresów . . . . . . . . . . . . . . . . . . . 270
Obliczanie rocznej sumy kroczącej  . . . . . . . . . . . 271
Właściwa kolejność wywoływania zagnieżdżonych funkcji analizy czasowej 274
Miary częściowo agregowalne  . . . . . . . . . 275
Funkcje LASTDATE i LASTNONBLANK  . . . . . . . . . 278
Obliczanie sald początkowych i końcowych  . . . . 283
Zaawansowana analiza czasowa  . . . . . . . 288
Przedziały „do dzisiaj”  . . . . . . . . . . 289
Funkcja DATEADD  . . . . . . . . . . . . . . 293
Funkcje FIRSTDATE, LASTDATE, FIRSTNONBLANK i LASTNONBLANK. . . . . . 300
Drążenie danych w analizie czasowej  . . . . . . . . . 302
Niestandardowe kalendarze  . . . . . . . . . . . 303
Praca z tygodniami  . . . . . . . . . . . . . 304
Niestandardowe obliczenia od początku roku, kwartału i miesiąca . . . . . . . . 308
Podsumowanie . . . . 309
 

9. Grupy obliczeń  . . . . . . . . . . . . . . 311
Wprowadzenie do grup obliczeń  . . . . . . . 311
Tworzenie grup obliczeń  . . . . . . . . . . . . . . 314
Istota grup obliczeń 321
Stosowanie elementów obliczanych  . . . . . . . . . . 324
Pierwszeństwo grup obliczeń  . . . . 333
Dołączanie i wykluczanie miar z elementów obliczanych . . . . . . . . . . . . . . . . 339
Istota rekurencji pobocznej  . . . . . . . . . . . . 341
Najlepsze praktyki . 346
Podsumowanie . . . . 347
 

10. Posługiwanie się kontekstem filtru  . . . . . . . . . 349
Korzystanie z funkcji HASONEVALUE i SELECTEDVALUE . . . . . . . . . . . . . . . . . . . . . . . 350
Funkcje ISFILTERED i ISCROSSFILTERED  . 356
Różnice pomiędzy funkcjami VALUES i FILTERS  . . . . . . . 359
Różnice pomiędzy funkcją ALLEXCEPT a ALL/VALUES  . 361
Wykorzystanie ALL w celu uniknięcia przejścia kontekstu . . . . . . . . . . . . . . . . . . . . . . 366
Korzystanie z funkcji ISEMPTY  . . . . . . . . . 368
Wprowadzenie do rodowodu danych i TREATAS  . . . . . 370
Arbitralnie ukształtowane filtry  . . . . . . . . 374
Podsumowanie . . . . 382
 

11. Hierarchie . 383
Obliczanie procentowych udziałów w hierarchiach  . . . 383
Obsługa hierarchii rodzic-dziecko  . . . . . . 388
Podsumowanie . . . . 401
 

12. Praca z tabelami  . . . . . . . . . . . . . 403
Funkcja CALCULATETABLE . . . . . . . . . . . . . 403
Przekształcanie tabel  . . . . . . . . . . . . . . . . . 406
Funkcja ADDCOLUMNS  . . . . . . . . . 406
Funkcja SUMMARIZE  . . . . . . . . . . . 410
Funkcja CROSSJOIN  . . . . . . . . . . . . 413
Funkcja UNION  . . . . . . . . . . . . . . . . 416
Funkcja INTERSECT  . . . . . . . . . . . . . 420
Funkcja EXCEPT  . . . . . . . . . . . . . . . . 422
Wykorzystywanie tabel jako filtrów  . . . . . 424
Implementowanie alternatywy  . . . 424
Zawężanie obliczeń do klientów z pierwszego roku . . . . . . . . . . . . . . . . . . . . . 428
Znajdowanie nowych klientów  . . . 429
Ponowne wykorzystanie wyrażeń tablicowych dzięki DETAILROWS . . . . . . . 432
Tworzenie tabel obliczanych  . . . . . . . . . . . 434
Funkcja SELECTCOLUMNS  . . . . . . . 434
Tworzenie tabel statycznych przy użyciu funkcji ROW . . . . . . . . . . . . . . . . . . . 436
Tworzenie tabel statycznych przy użyciu DATATABLE . . . . . . . . . . . . . . . . . . . . 437
Funkcja GENERATESERIES  . . . . . . . 438
Podsumowanie . . . . 439
 

13. Budowanie zapytań  . . . . . . . . . . 441
Wprowadzenie do DAX Studio  . . . . . . . . . 441
Istota funkcji EVALUATE  . . . . . . . . . . . . . . . 442
Składnia EVALUATE  . . . . . . . . . . . . . 442
Używanie VAR w sekcji DEFINE  . . . 444
Korzystanie z MEASURE w sekcji DEFINE  . . . . . . 446
Implementowanie typowych wzorców zapytań . . . . . . . 447
Wykorzystanie funkcji ROW do testowania miar  447
Korzystanie z funkcji SUMMARIZE  448
Korzystanie z funkcji SUMMARIZECOLUMNS  . . 450
Korzystanie z funkcji TOPN  . . . . . . 457
Korzystanie z funkcji GENERATE i GENERATEALL . . . . . . . . . . . . . . . . . . . . . . . 464
Korzystanie z funkcji ISONORAFTER  . . . . . . . . . . 468
Korzystanie z funkcji ADDMISSINGITEMS  . . . . . . 470
Korzystanie z funkcji TOPNSKIP  . . 471
Funkcja GROUPBY  . . . . . . . . . . . . . . 471
Korzystanie z funkcji NATURALINNERJOIN i NATURALLEFTOUTERJOIN . . . . 474
Korzystanie z funkcji SUBSTITUTEWITHINDEX  . . 477
Korzystanie z funkcji SAMPLE  . . . . 479
Istota zachowania auto-exists w zapytaniach DAX  . . . . 480
Podsumowanie . . . . 487
 

14. Zaawansowane koncepcje języka DAX  . . . . . . 489
Wprowadzenie do tabel rozszerzonych  . 489
Istota funkcji RELATED  . . . . . . . . . . 494
Używanie funkcji RELATED w kolumnach obliczanych . . . . . . . . . . . . . . . . . . . 496
Istota różnicy pomiędzy filtrami tabel a filtrami kolumn . . . . . . . . . . . . . . . . . . . . . . . 497
Używanie filtrów tablicowych w miarach  . . . . . . 501
Relacje aktywne  . . . . . . . . . . . . . . . . 504
Rozróżnienie pomiędzy rozszerzaniem tabel a filtrowaniem . . . . . . . . . . . . . 507
Przejście kontekstu w tabelach rozszerzonych . . 509
Istota funkcji ALLSELECTED i przesłanianych kontekstów filtru . . . . . . . . . . . . . . . . . 510
Pojęcie przesłanianych kontekstów filtru  . . . . . . 511
ALLSELECTED zwraca iterowane wiersze  . . . . . . . 515
ALLSELECTED bez parametrów  . . . 518
Rodzina funkcji ALL* 518
ALL. . . . . . . . . 520
ALLEXCEPT . . 521
ALLNOBLANKROW  . . . . . . . . . . . . . 521
ALLSELECTED 521
ALLCROSSFILTERED  . . . . . . . . . . . . 521
Istota rodowodu danych  . . . . . . . . . . . . . . 522
Podsumowanie . . . . 525
 

15. Zaawansowana obsługa relacji  . 527
Stosowanie obliczanych relacji fizycznych  . . . . . . . . . . . 527
Tworzenie relacji wielokolumnowych  . . . . . . . . . 528
Implementowanie relacji opartych na zakresach  530
Zależności cykliczne w fizycznych relacjach obliczanych . . . . . . . . . . . . . . . . . 533
Implementowanie relacji wirtualnych  . . . 537
Przenoszenie filtrów w DAX  . . . . . 537
Transferowanie filtru przy użyciu TREATAS  . . . . . 540
Transferowanie filtru przy użyciu INTERSECT  . . . 541
Transferowanie filtru przy użyciu FILTER  . . . . . . . 542
Implementacja dynamicznej segmentacji przy użyciu relacji wirtualnych . . 543
Istota mechanizmu relacji fizycznych  . . . 546
Używanie dwukierunkowego filtrowania  550
Istota relacji jeden-do-wielu  . . . . . . . . . . . 552
Istota relacji jeden-do-jednego  . . . . . . . . 552
Istota relacji wiele-do-wielu  . . . . . . . . . . . 553
Implementowanie relacji wiele-do-wielu przy użyciu tabeli mostka . . . . . . . 553
Implementowanie relacji wiele-do-wielu przy użyciu wspólnego wymiaru . 559
Implementowanie wiele-do-wielu przy użyciu słabych relacji mmr . . . . . . . . 564
Wybieranie właściwego typu relacji  . . . . . 567
Zarządzanie granularnościami  . . . . . . . . . 568
Zarządzanie niejednoznacznościami w relacjach  . . . . . 573
Niejednoznaczność w aktywnych relacjach  . . . . 575
Rozwiązywanie niejednoznaczności w nieaktywnych relacjach. . . . . . . . . . . . 577
Podsumowanie . . . . 579
 

16. Zaawansowane obliczenia w języku DAX  . . . 581
Obliczanie liczby dni roboczych pomiędzy dwiema datami . . . . . . . . . . . . . . . . . . . . 581
Pokazywanie łącznie danych budżetu i sprzedaży  . . . . 590
Obliczanie sprzedaży w tym samym sklepie  . . . . . . . . . 593
Numerowanie sekwencji zdarzeń  . . . . . . . 600
Obliczanie wartości sprzedaży z poprzedniego roku do wskazanej daty . . . . . . . . . 603
Podsumowanie . . . . 609
 

17. Silniki DAX 611
Architektura silników DAX  . . . . . . . . . . . . . 612
Istota silnika zapytań  . . . . . . . . . . . 613
Istota silnika magazynowego  . . . . 614
Wprowadzenie do silnika magazynowego VertiPaq . . . . . . . . . . . . . . . . . . . . . 615
Wprowadzenie do silnika magazynowego DirectQuery . . . . . . . . . . . . . . . . . 616
Istota odświeżania danych  . . . . . . 616
Działanie silnika magazynowego VertiPaq  . . . . . . . . . . 617
Wprowadzenie do kolumnowych baz danych  . . 618
Istota kompresji VertiPaq  . . . . . . . . 621
Istota ponownego kodowania  . . . 627
Znajdowanie najlepszego uporządkowania  . . . . 628
Segmentacja i partycjonowanie  . . 631
Korzystanie z dynamicznych widoków zarządzania . . . . . . . . . . . . . . . . . . . . . 632
Wykorzystywanie relacji w VertiPaq  . . . . 635
Wprowadzenie do materializacji  . . . . . . . 638
Wprowadzenie do agregacji  . . . . . . . . . . . 641
Wybieranie sprzętu dla bazy danych VertiPaq  . . . . . . . . 643
Czy możemy wybrać sprzęt?  . . . . . 644
Ustalanie priorytetów sprzętowych  . . . . . . . . . . . 644
Model procesora  . . . . . . . . . . . . . . . 645
Szybkość pamięci  . . . . . . . . . . . . . . 646
Wielkość pamięci  . . . . . . . . . . . . . . 646
Liczba rdzeni 647
Dyskowe operacje I/O i stronicowanie  . . . . . . . . 647
Najlepsze praktyki przy wybieraniu sprzętu  . . . . 648
Podsumowanie . . . . 648
 

18. Optymalizowanie VertiPaq  . . . . 649
Gromadzenie informacji o modelu danych  . . . . . . . . . . 650
Denormalizacja . . . . 655
Kardynalność kolumn  . . . . . . . . . . . . . . . . . 662
Obsługa daty i czasu  . . . . . . . . . . . 663
Kolumny obliczane . 667
Optymalizowanie złożonych filtrów przy użyciu logicznych
kolumn obliczanych  . . . . . . . . . 670
Przetwarzanie kolumn obliczanych  . . . . . . . . . . . 671
Wybieranie właściwych kolumn do przechowania  . . . . 672
Optymalizowanie przechowywania kolumn . . . . . . . . . . 675
Optymalizacja przez podział kolumny  . . . . . . . . 675
Optymalizowanie kolumn o wysokiej kardynalności . . . . . . . . . . . 677
Wyłączanie hierarchii atrybutów  . 677
Optymalizowanie atrybutów drążenia w głąb  . . 678
Zarządzanie agregacjami VertiPaq  . . . . . 678
Podsumowanie . . . . 682
 

19. Analizowanie planów zapytań  . 683
Przechwytywanie zapytań DAX  . . . . . . . . 683
Wprowadzenie do planów zapytań DAX  687
Gromadzenie planów zapytań  . . . 688
Logiczny plan zapytania  . . . . . . . . 689
Fizyczny plan zapytania  . . . . . . . . . 689
Zapytanie do silnika magazynowego  . . . . . . . . . 691
Przechwytywanie informacji profilowania  . . . . . . . . . . . 692
Korzystanie z DAX Studio  . . . . . . . 693
Korzystanie z SQL Server Profiler  . 696
Czytanie zapytań do silnika magazynowego VertiPaq  . 700
Wprowadzenie do składni xmSQL  701
Czas skanowania  . . . . . . . . . . . . . . . 710
Wewnętrzne mechanizmy funkcji DISTINCTCOUNT . . . . . . . . 712
Istota równoległości i buforów danych  . . . . . . . . 713
Pamięć podręczna VertiPaq  . . . . . . 715
Istota elementu CallbackDataID  . . 718
Czytanie zapytań do silnika DirectQuery  724
Analizowanie modeli kompozytowych  . . . . . . . . 726
Używanie agregacji w modelu danych  . . . . . . . . 727
Czytanie planów zapytań  . . . . . . . . . . . . . 729
Podsumowanie . . . . 737
 

20. Optymalizowanie kodu DAX  . . 739
Definiowanie strategii optymalizacji  . . . . 740
Identyfikacja pojedynczego wyrażenia DAX, które wymaga optymalizacji . . 740
Utworzenie zapytania reprodukującego problem . . . . . . . . . . . . . . . . . . . . . . . 744
Analiza czasów wykonania i informacji zawartych w planie zapytania . . . . . 748
Identyfikacja wąskich gardeł w silniku magazynowym lub silniku formuł . . . 751
Implementowanie zmian i ponowne uruchamianie zapytania testowego . . 752
Optymalizowanie wąskich gardeł silnika magazynowego . . . . . . . . . . . . . . . . . . . . . . 752
Optymalizowanie warunków filtrowania  . . . . . . . 753
Optymalizowanie przejść kontekstu  . . . . . . . . . . 757
Optymalizowanie warunków IF  . . 764
Redukowanie wpływu CallbackDataID  . . . . . . . . 777
Optymalizowanie zagnieżdżonych iteratorów  . . 781
Unikanie filtrów tablicowych dla funkcji DISTINCTCOUNT . . . . . . . . . . . . . . . 788
Unikanie wielokrotnego obliczania przy użyciu zmiennych . . . . . . . . . . . . . . 793
Podsumowanie . . . . 798
Indeks . . . . . . . . . . . . 799
 

powrót
 
Produkty Podobne
Excel 2019 PL. Biblia
Kompletny przewodnik po DAX, wyd. 2 rozszerzone. Analiza biznesowa przy użyciu Microsoft Power BI, SQL Server Analysis Services i Excel
Excel 2019 PL w biurze i nie tylko
VBA dla Excela 2019 PL. 234 praktyczne przykłady
Zestaw Excel 2019 (Przetwarzanie danych + Analiza i modelowanie danych)
Zrozumieć Excela. Funkcje i wyrażenia
Microsoft Excel 2019: Formuły i funkcje
ABC Excel 2019 PL
Definitive Guide to DAX, The: Business intelligence for Microsoft Power BI, SQL Server Analysis Services, and Excel, 2nd Edition
Microsoft Excel 2019. Analiza i modelowanie danych biznesowych
Więcej produktów