Zapytania języka DAX przy użyciu zmiennych i ważnych funkcji

W tym samouczku omówimy zmienne, w tym funkcje i CALCULATE . Zrozumiesz, w jaki sposób pomagają one zwiększyć wydajność zapytań języka DAX i zapewnić dokładne wyniki.

Zmienne powinny być używane w jak największym stopniu, ponieważ mogą łatwo zlokalizować kody do optymalizacji. Zapobiegają uzyskiwaniu nieprawidłowych danych wyjściowych i oszczędzają czas na szukanie błędu. Jednak zmienne czasami uniemożliwiają ponowne obliczenie wartości. Więc kiedy zostaną zdefiniowane za pomocą wartości, tej wartości nie można zmienić, nawet przez CALCULATE .

Ważne jest, aby wiedzieć, gdzie należy definiować i używać zmiennych, ponieważ użycie ich wewnątrz i na zewnątrz iteracji da różne wyniki. Powinny być zdefiniowane blisko miejsca, w którym będą używane. Pomaga to również rozkładać długie kody, ułatwiając ich zrozumienie i debugowanie.

Spis treści

Twórz zapytania DAX za pomocą funkcji CALCULATE i FILTER

Istnieją różne metody uzyskiwania wyników i odpowiedzi w języku DAX. Musisz wypracować własny styl i sposób tworzenia raportu, aby czuć się komfortowo z tym, nad czym pracujesz. Nawet jeśli masz swój własny styl, nadal musisz postępować zgodnie z określonymi wytycznymi, które obejmują używanie CALCULATE zamiast różnych metod, takich jak FILTER .

FILTR może wysłać wiele nieskompresowanych danych do silnika formuły i może potencjalnie wyzwolić CallBackDataID . W tym miejscu zostaną użyte miary do pokazania wyników funkcji CALCULATE i FILTER . Ma to również zdefiniowaną miarę, która jest lokalna dla zapytania. Zdefiniowanych miar nie można znaleźć w modelu danych, ale mogą one szybciej opracowywać kody i rozwiązywać problemy.

Zapytania języka DAX przy użyciu zmiennych i ważnych funkcji

W pierwszym wierszu możesz zobaczyć miarę, która definiuje zmienną dla daty. Oznacza to, że filtruje tabelę faktów pod kątem dat przypadających 31 marca 2016 r. lub później. Możesz także zobaczyć prostą miarę całkowitej sprzedaży, która iteruje tabelę faktów sprzedaży i mnoży ilość i aktualną cenę.

Następną miarą jest użycie wewnątrz . Jeśli pamiętasz z modułu CallBackDataID , użycie IF wewnątrz funkcji SUMX utworzy CallBackDataID .

Zapytania języka DAX przy użyciu zmiennych i ważnych funkcji

Ta miara filtruje całą tabelę Fakt sprzedaży. Usuwa filtry pochodzące z tabeli Date.

Zapytania języka DAX przy użyciu zmiennych i ważnych funkcji

Należy zachować ostrożność podczas filtrowania całej tabeli, ponieważ spowoduje to również filtrowanie wszystkich kolumn znajdujących się po jednej stronie relacji jeden-do-wielu.

Ten środek jest taki sam jak poprzedni środek; jedyną różnicą jest to, że nie filtruje całej tabeli. Używa SUMX tylko do iteracji przefiltrowanej tabeli.

Zapytania języka DAX przy użyciu zmiennych i ważnych funkcji

Jest to kolejna miara, która filtruje tabelę Faktyczna sprzedaż, ale tym razem dotyczy tylko kolumny, w której się znajduje.

Zapytania języka DAX przy użyciu zmiennych i ważnych funkcji

Ostatnim środkiem jest użycie CALCULATE i modelu danych do filtrowania i pobierania danych.

Zapytania języka DAX przy użyciu zmiennych i ważnych funkcji

Uruchom i sprawdź każdy środek

Najpierw uruchom miarę JEŻELI . Pamiętaj, aby wyczyścić pamięć podręczną przed uruchomieniem zapytania i włączyć chronometraż serwera i plan zapytań.

Zapytania języka DAX przy użyciu zmiennych i ważnych funkcji

Zapytania języka DAX przy użyciu zmiennych i ważnych funkcji

Chociaż zapewnia prawidłowe dane, wydajność jest niska ze względu na CallBackDataID i 3 czasy trwania.

Jeśli uruchomisz miarę, która filtruje całą tabelę sprzedaży faktów, nadal możesz zobaczyć CallBackDataID . Wygeneruje również 15 003 wierszy i dostarczy nieprawidłowych wyników.

Zapytania języka DAX przy użyciu zmiennych i ważnych funkcji

Zapytania języka DAX przy użyciu zmiennych i ważnych funkcji

Po uruchomieniu miary, która nie filtruje całej tabeli Sprzedaż faktów, otrzymasz poprawne wyniki. Jednak nadal będziesz widzieć CallBackDataID i zmaterializowane 15 003 wierszy, ale będziesz mieć tylko 7 wierszy danych wyjściowych.

Zapytania języka DAX przy użyciu zmiennych i ważnych funkcji

Zapytania języka DAX przy użyciu zmiennych i ważnych funkcji

Uruchom następną miarę, która filtruje kolumnę. Otrzymasz poprawne wyniki i wyeliminujesz CallBackDataID . Ale nadal widać, że zmaterializowało się wiele rzędów.

Zapytania języka DAX przy użyciu zmiennych i ważnych funkcji

Zapytania języka DAX przy użyciu zmiennych i ważnych funkcji

Uruchom miarę CALCULATE . Widać, że zmaterializowało się tylko 10 wierszy i wygenerowało poprawne dane w 5 milisekund.

Zapytania języka DAX przy użyciu zmiennych i ważnych funkcji

Zapytania języka DAX przy użyciu zmiennych i ważnych funkcji

Jest najszybsza spośród wszystkich powyższych miar, ponieważ nie ma CallBackDataID i pobiera tylko 10 wierszy. To pokazuje, jak imponujące jest CALCULATE w uzyskiwaniu szybkich i precyzyjnych wyników.

Jeśli uruchomisz wszystkie zapytania lub miary języka DAX, możesz zobaczyć, która z nich jest najwolniejsza, a która najszybsza na podstawie czasu trwania. Możesz także zobaczyć wyniki każdego pomiaru.

Zapytania języka DAX przy użyciu zmiennych i ważnych funkcji

Zapytania języka DAX przy użyciu zmiennych i ważnych funkcji

Wniosek

Przenosząc filtry na CALCULATE, zaoszczędzisz czas i materiał, ponieważ CallBackDataID zostanie wyeliminowany. Nie będziesz musiał dwukrotnie powtarzać danych. Pozwoli to również zmaksymalizować wydajność Twojego języka DAX i pomoże Ci poprawić umiejętności programistyczne.

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.