Struktura zapytań DAX w LuckyTemplates – dwa silniki i DAX Studio

Ten samouczek dotyczy struktury zapytań języka DAX i dwóch aparatów w DAX Studio. Zobaczysz, jak przebiega proces uzyskiwania wyników przez formuły języka DAX. Dowiesz się również, jak działa każdy silnik w obliczeniach.

Istnieją dwa silniki odpowiedzialne za generowanie danych: silnik formuł i silnik pamięci masowej VertiPaq .

Spis treści

Struktura zapytań języka DAX

W tym samouczku zostanie przedstawiona dogłębna struktura zapytań języka DAX dotycząca działania języka DAX za raportem.

Struktura zapytań DAX w LuckyTemplates – dwa silniki i DAX Studio

Każda tworzona miara jest zapytaniem. Działa na zbiorze danych i zwraca odpowiedź. Zapytanie następnie komunikuje się z SQL Server Analysis Services. Jest to dostosowana wersja dla usługi LuckyTemplates, która działa w tle.

Po napisaniu zapytania jest ono wysyłane do mechanizmu formuł. Odpowiada na wszystkie języki DAX, ale nie jest tak wydajny jak silnik pamięci masowej.

Gdy silnik formuł otrzyma zapytanie, prosi silnik magazynu VertiPaq o dane do pracy. Następnie silnik magazynu pobiera dane ze skompresowanej pamięci podręcznej danych.

VertiPaq jest wydajny, ponieważ działa na skompresowanych kolumnach. Może obliczyć wiele wierszy w ciągu milisekund.

Na końcu diagramu widać źródło danych. Ta transakcja ma miejsce tylko wtedy, gdy odświeżasz dane.

Kolejną rzeczą, której musisz się nauczyć, jest to, że silnik pamięci masowej może odpowiadać na proste zapytania. W przeciwnym razie wysyła pamięć podręczną danych z powrotem do mechanizmu formuły w celu obliczenia odpowiedzi.

Gdy wysyła te dane z powrotem do aparatu formuły, nie są one już kompresowane. Wykorzystuje pełne kolumny w pamięci. 

Gdy więc aparat formuł odzyska dane, oblicza i wypełnia odpowiedź na zapytanie języka DAX.

Silniki struktury zapytań języka DAX

Ważne jest, aby znać różnicę między silnikiem formuły a silnikiem magazynu. Każdy z nich jest przeznaczony do innych celów, dzięki czemu możesz wykorzystać swoją wiedzę na temat języka DAX i uzyskiwać szybkie i dokładne zapytania. Oto różnice między tymi dwoma silnikami:

Struktura zapytań DAX w LuckyTemplates – dwa silniki i DAX Studio

Ikona każdego silnika reprezentuje szybkość jego działania. Mechanizm magazynu jest szybszy niż mechanizm formuł, ponieważ obsługuje proste żądania. Jeśli zapytanie DAX jest proste i wymaga  lub , aparat pamięci masowej może to wszystko zrobić sam.

Z drugiej strony silnik formuł może obsługiwać złożone funkcje języka DAX. Pamiętaj, że im bardziej złożone jest Twoje zapytanie, tym więcej mechanizmów formuł będziesz mieć w swoich wyrażeniach.

Dane używane przez oba silniki są również różne. Silnik formuł korzysta z nieskompresowanej pamięci podręcznej danych z mechanizmu pamięci masowej, która zajmuje dużo pamięci i czasu, podczas gdy silnik pamięci masowej wykorzystuje skompresowane dane .

Silnik pamięci masowej jest szybki, ponieważ wykorzystuje więcej niż jeden rdzeń naraz. Oznacza to, że jest to silnik wielowątkowy. Jeśli twoje tabele mają segmenty, skanuje je w zależności od liczby posiadanych rdzeni. Silnik formuł może jednak wykonywać tylko jeden rdzeń naraz.

Inną wspaniałą cechą silnika pamięci masowej jest to, że kiedy twoje miary dają odpowiedź, przechowuje tę odpowiedź w pamięci, w przeciwieństwie do silnika formuł. Jeśli zostanie zadane to samo pytanie, otrzymasz odpowiedź bez przeprowadzania pełnego obliczenia.

Silnik magazynu jest zoptymalizowany pod kątem szybkości, podczas gdy silnik formuły jest zoptymalizowany pod kątem złożoności.

Za obliczeniami DAX

Jedyną metodą poznania procesu stojącego za wydajnością języka DAX jest użycie DAX Studio. To jest przykładowy plik w DAX Studio.

Struktura zapytań DAX w LuckyTemplates – dwa silniki i DAX Studio

Jeśli naciśniesz F5 i uruchomisz go, otrzymasz wyniki.

Struktura zapytań DAX w LuckyTemplates – dwa silniki i DAX Studio

Aby wiedzieć, co dzieje się z dwoma silnikami odpowiedzialnymi za obliczenia, włącz chronometraż serwera i plan zapytań. Następnie ponownie uruchom język DAX.

Struktura zapytań DAX w LuckyTemplates – dwa silniki i DAX Studio

Po zakończeniu przejdź do zakładki Czasy serwera.

Struktura zapytań DAX w LuckyTemplates – dwa silniki i DAX Studio

Możesz zobaczyć całkowity czas wykonania zapytania, silnika formuł i silnika magazynu. Zobaczysz również, ile silników pamięci zostało uruchomionych. Silnik formuł jest uruchamiany przez 83,3% całego zapytania, podczas gdy silnik magazynu zajmuje tylko 16,7%.

Jeśli przejdziesz do karty Plan zapytań, zobaczysz Fizyczne zapytania i Logiczne plany zapytań. Oba są zapytaniami o formuły dotyczące tego, co robi aparat formuł.

Struktura zapytań DAX w LuckyTemplates – dwa silniki i DAX Studio


Obliczenia języka DAX w usłudze LuckyTemplates: najlepsze praktyki
Optymalizacja funkcji języka DAX dzięki nowemu kursowi
Pomiar w usłudze LuckyTemplates: porady i techniki optymalizacji

Wniosek

Zarówno silniki formuł, jak i pamięci masowej odgrywają dużą rolę w generowaniu wyników z kodu DAX. Są to najważniejsze części w strukturze zapytań języka DAX.

Mam nadzieję, że wiesz, w jaki sposób te silniki wpływają na wydajność Twojego języka DAX i jak mogą wpłynąć na Twój raport.

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.