Zapytania DAX w usłudze LuckyTemplates — logiczne i fizyczne plany zapytań

W tym samouczku omówiono dwa plany zapytań języka DAX w usłudze LuckyTemplates.

Plany zapytań wpływają na wydajność języka DAX w zakresie generowania cennych danych. Pomagają również w optymalizacji kodów DAX , dzięki czemu raport jest bardziej atrakcyjny.

Oto dwa plany zapytań generowane przez aparat formuł:

  • Logiczny plan zapytań
  • Fizyczny plan zapytań

Każde zapytanie języka DAX wyzwala te dwa zdarzenia.

Spis treści

Logiczny plan zapytań w LuckyTemplates

To jest przepływ zapytań języka DAX. W tej części skup się na trzecim kroku, którym jest drzewo planu uproszczonych zapytań logicznych .

Zapytania DAX w usłudze LuckyTemplates — logiczne i fizyczne plany zapytań

To zapytanie przypomina zapytanie DAX. Gdy uruchamiasz zapytanie języka DAX, jest ono w większości zgodne z tym, co robi Logiczny plan zapytań.

Aby to zilustrować, oto przykładowe zapytanie.

Zapytania DAX w usłudze LuckyTemplates — logiczne i fizyczne plany zapytań

Jeśli to uruchomisz, otrzymasz wynik 29 138.

Zapytania DAX w usłudze LuckyTemplates — logiczne i fizyczne plany zapytań

Jeśli uruchomisz zapytanie w DAX Studio i włączysz kartę Zdarzenia planu zapytań, zobaczysz Plany zapytań. Wśród tych dwóch typów logiczny plan zapytań pojawia się jako pierwszy.

Zapytania DAX w usłudze LuckyTemplates — logiczne i fizyczne plany zapytań

Każda wcięta linia to podzadanie zbudowane na sobie. Pierwsza linia to ostateczny wynik Twojego DAX. Pozostałe wiersze sumują się i przeglądają kolumnę FactSales' Quantity.

Pierwsze słowo przed dwukropkiem nazywa się operatorem .

Zapytania DAX w usłudze LuckyTemplates — logiczne i fizyczne plany zapytań

Słowa po dwukropku nazywane są typami operatorów .

Zapytania DAX w usłudze LuckyTemplates — logiczne i fizyczne plany zapytań

Istnieją dwa rodzaje typów operatorów:

  • RelLogOp
  • ScaLogOp

RelLogOp jest wyjściem tabeli. DAX używa VertiPaq do skanowania kolumny w celu utworzenia tabeli. Z drugiej strony ScaLogOp jest wyjściem skalarnym; oznacza to, że jest to liczba zagregowana. Jeśli spojrzysz na drugi i ostatni wiersz planu zapytań, zobaczysz, że sumuje się i otrzymuje ilość FactSales' Quantity.

Logiczne plany zapytań tworzą jednowierszową tabelę o nazwie Total Quantity, która zawiera sumę Quantity z tabeli FactSales.

Plan zapytań jest łatwiejszy do zdekodowania, ponieważ wykorzystuje proste zapytanie języka DAX. Im bardziej złożony jest Twój język DAX, tym trudniej go zdekodować.

Dobrą rzeczą, do której należy dążyć, jest zobaczenie jak największej liczby operatorów „_VertiPaq”. Oznacza to, że wykonuje całą pracę samodzielnie, aby pomóc zoptymalizować kody DAX.

Fizyczny plan zapytań w usłudze LuckyTemplates

Fizyczny plan zapytań pojawia się na drugim miejscu wśród tych dwóch typów. Jest to czwarty krok w przepływie zapytania języka DAX. Ma taką samą strukturę drzewiastą jak Logiczny plan zapytań.

Po zbudowaniu logicznego planu zapytań jest on wysyłany do fizycznego planu zapytań w celu wykonania. Jeśli uruchomisz to samo przykładowe zapytanie, otrzymasz tę samą odpowiedź.

Zapytania DAX w usłudze LuckyTemplates — logiczne i fizyczne plany zapytań

W szczególności czwartym krokiem w przepływie zapytania DAX jest zbudowanie drzewa planu fizycznego zapytania .

Zapytania DAX w usłudze LuckyTemplates — logiczne i fizyczne plany zapytań

Może wyglądać podobnie do logicznego planu zapytań, ale jest inny. Zwykle fizyczny plan zapytań jest trudny do dopasowania do zapytania DAX w usłudze LuckyTemplates , ale ponieważ jest to proste przykładowe zapytanie, możesz śledzić ten proces.

Oto trzy typy operatorów w planie zapytań fizycznych:

  • LookupPhyOp
  • InterPhyOp
  • SpoolPhy Op

LookupPhyOp podaje wartości skalarne w danym kontekście wiersza. InterPhyOp iteruje dane w tabeli wiersz po wierszu . SpoolPhyOp otrzymuje wyniki zapytania VertiPaq, materializuje je i zapisuje w pamięci.

W czwartej linii planu zapytań możesz zobaczyć operator ProjectionSpool, co oznacza, że ​​zapytanie jest wysyłane do silnika pamięci masowej. Iteruje wyniki zapytania z liczbą rekordów.

Liczba rekordów pokazana w planie kwerend powinna być najmniejszą liczbą rekordów wymaganych do wypełnienia odpowiedzi. Wynik tego prostego zapytania ma tylko 1 wiersz, więc zwrócił 1 rekord w planie zapytań.

Kolumna Rekordy , która odpowiada funkcji SpoolPhyOp narzędzia ProjectionSpool, pokazuje, ile danych jest wysyłanych z mechanizmu przechowywania do mechanizmu formuł. Im więcej masz rekordów, tym wolniejsze będzie zapytanie.

Jeśli wydajność języka DAX jest niska, kolumna Rekordy jest dobrym miejscem do rozpoczęcia wyszukiwania.


Obliczenia języka DAX w usłudze LuckyTemplates: najlepsze praktyki
Optymalizacja funkcji języka DAX dzięki temu nowemu kursowi
5 strategii zwiększających umiejętności w zakresie języka DAX w usłudze LuckyTemplates

Wniosek

Po uruchomieniu zapytania języka DAX przechodzi ono przez szereg kroków, zanim udzieli odpowiedzi. Dwa z tych kroków to plany zapytań logicznych i fizycznych. Odpowiadają za krok po kroku proces i wykonanie wzorów użytych w obliczeniach.

Jeśli chcesz dowiedzieć się więcej o tych planach zapytań, zapoznaj się z tym samouczkiem, a następnie spróbuj użyć DAX Studio , aby zobaczyć je z pierwszej ręki.

Leave a Comment

Dodawaj, usuwaj i zmieniaj nazwy kolumn w R za pomocą Dplyr

Dodawaj, usuwaj i zmieniaj nazwy kolumn w R za pomocą Dplyr

W tym samouczku omówimy pakiet dplyr, który umożliwia sortowanie, filtrowanie, dodawanie i zmianę nazw kolumn w języku R.

Funkcje zbierania w Microsoft Power Automate

Funkcje zbierania w Microsoft Power Automate

Odkryj różnorodne funkcje zbierania, które można wykorzystać w Power Automate. Zdobądź praktyczne informacje o funkcjach tablicowych i ich zastosowaniu.

Oceń wydajność kodu DAX w DAX Studio

Oceń wydajność kodu DAX w DAX Studio

Z tego samouczka dowiesz się, jak ocenić wydajność kodów DAX przy użyciu opcji Uruchom test porównawczy w DAX Studio.

Czym jest self w Pythonie: przykłady z życia wzięte

Czym jest self w Pythonie: przykłady z życia wzięte

Czym jest self w Pythonie: przykłady z życia wzięte

Jak zapisać i załadować plik RDS w R

Jak zapisać i załadować plik RDS w R

Dowiesz się, jak zapisywać i ładować obiekty z pliku .rds w R. Ten blog będzie również omawiał sposób importowania obiektów z R do LuckyTemplates.

Powrót do pierwszych N dni roboczych — rozwiązanie języka kodowania DAX

Powrót do pierwszych N dni roboczych — rozwiązanie języka kodowania DAX

Z tego samouczka języka kodowania DAX dowiesz się, jak używać funkcji GENERUJ i jak dynamicznie zmieniać tytuł miary.

Zaprezentuj spostrzeżenia przy użyciu wielowątkowej techniki dynamicznych wizualizacji w usłudze LuckyTemplates

Zaprezentuj spostrzeżenia przy użyciu wielowątkowej techniki dynamicznych wizualizacji w usłudze LuckyTemplates

W tym samouczku omówiono sposób korzystania z techniki wielowątkowych wizualizacji dynamicznych w celu tworzenia szczegółowych informacji na podstawie dynamicznych wizualizacji danych w raportach.

Wprowadzenie do filtrowania kontekstu w usłudze LuckyTemplates

Wprowadzenie do filtrowania kontekstu w usłudze LuckyTemplates

W tym artykule omówię kontekst filtra. Kontekst filtrowania to jeden z głównych tematów, z którym każdy użytkownik usługi LuckyTemplates powinien zapoznać się na początku.

Najlepsze wskazówki dotyczące korzystania z aplikacji w usłudze online LuckyTemplates

Najlepsze wskazówki dotyczące korzystania z aplikacji w usłudze online LuckyTemplates

Chcę pokazać, jak usługa online LuckyTemplates Apps może pomóc w zarządzaniu różnymi raportami i spostrzeżeniami generowanymi z różnych źródeł.

Analizuj zmiany marży zysku w godzinach nadliczbowych — Analizuj za pomocą LuckyTemplates i DAX

Analizuj zmiany marży zysku w godzinach nadliczbowych — Analizuj za pomocą LuckyTemplates i DAX

Dowiedz się, jak obliczyć zmiany marży zysku przy użyciu technik, takich jak rozgałęzianie miar i łączenie formuł języka DAX w usłudze LuckyTemplates.