UNION DAX Funkcja a Power Query

W tym samouczku poznasz technikę optymalizacji języka DAX przy użyciu funkcji UNION. W tym samouczku porównamy wydajność funkcji UNION z dodatkiem Power Query i innymi technikami łączenia tabel.

Funkcja łączy dwie tabele w jedną, łącząc ich wiersze i usuwając zduplikowane wiersze.

Przykładem w tym samouczku jest tabela Sales, która została podzielona na trzy tabele dla każdego roku (2007, 2008, 2009).

Spis treści

Funkcja UNION w języku DAX

Otwórz DAX Studio i uruchom chronometraż serwera i plan zapytań.

UNION DAX Funkcja a Power Query

Poniższy kod DAX służy jako przykład:

UNION DAX Funkcja a Power Query

Po uruchomieniu kodu przejdź do karty Chronometraż serwera . Jak widać, wykonanie kodu trwa łącznie 5,4 sekundy. Większość czasu wykonania była spędzana w Storage Engine . Każde z tych trzech zapytań zawiera tę samą operację, ale lata są różne.

UNION DAX Funkcja a Power Query

Po zwróceniu tych trzech zapytań przez Storage Engine, Formula Engine wykonuje UNION, co można zobaczyć w Logical Query Plan. Plan zapytań wykonuje również w celu obliczenia całkowitej sprzedaży.

UNION DAX Funkcja a Power Query

W planie zapytań fizycznych można zobaczyć trzy pamięci podręczne danych zawierające operacje wykonane dla każdego roku w tabeli Sprzedaż.

UNION DAX Funkcja a Power Query

Porównanie wydajności języka DAX

Aby utworzyć porównanie, utwórzmy miarę Total Sales, korzystając z oryginalnej tabeli Sales.

UNION DAX Funkcja a Power Query

Jeśli uruchomisz ten kod i przejdziesz do karty Czasy serwera , zobaczysz, że jest to znacznie bardziej wydajne niż funkcja UNION.

Funkcja UNION zużywa 97,9 kilobajtów, podczas gdy nowa miara zajmuje tylko 1 KB.

UNION DAX Funkcja a Power Query

Gdy używasz UNION, aparat DAX zwraca ogromną ilość pamięci podręcznej danych z powrotem do silnika formuł. Powoduje to duże obciążenie pamięci RAM.

Więc jeśli masz do czynienia z modelem danych zawierającym więcej niż milion wierszy, nie zaleca się używania funkcji UNION

Alternatywy funkcji UNION DAX

Zamiast używać UNION, w tym przykładzie możesz użyć trzech funkcji SUMX . Oznacza to, że jedna funkcja SUMX na każdy rok.

UNION DAX Funkcja a Power Query

Gdy uruchomisz ten kod i przejdziesz do zakładki Server Timings, zobaczysz, że czas wykonania jest znacznie krótszy. Wzrosło z 5400 ms do 33 ms przy jednoczesnym wykonywaniu trzech różnych zapytań.

UNION DAX Funkcja a Power Query

Innym sposobem jest dołączenie tabeli Model danych w dodatku Power Query lub w samym źródle danych.

Ale najlepszą opcją jest utworzenie tabeli obliczeniowej , która wykona połączenie tych trzech tabel. Ale ta opcja ma swoje zalety i wady.

Korzystanie z tabeli obliczeniowej pozwala zaoszczędzić całkowity czas przetwarzania w porównaniu z wykonywaniem dołączania w dodatku Power Query. Spowoduje to jednak zwiększenie rozmiaru bazy danych w VertiPaq.

Gdy używasz tabeli obliczeniowej, tworzysz nową tabelę, która łączy trzy tabele. Ale te trzy podzielone tabele nadal pozostaną w bazie danych.

UNION DAX Funkcja a Power Query

W tym przykładzie trzy tabele zajmują łącznie 25 MB. Jeśli utworzysz tabelę obliczeniową, zajmie ona kolejne 25 MB pamięci RAM.

W takich wrażliwych przypadkach należy podjąć przemyślaną decyzję dotyczącą najlepszego sposobu działania.

Wniosek

Funkcja UNION w języku DAX łączy dwie tabele w jedną, co ułatwia analizę danych. Działa poprzez przyjęcie dwóch tabel jako danych wejściowych i zwrócenie nowej tabeli zawierającej wszystkie wiersze z obu tabel wejściowych. Ta funkcja ma jednak swoje ograniczenia.

Funkcja UNION może być wolniejsza niż inne metody łączenia danych, zwłaszcza jeśli tabele wejściowe są duże. Może również zajmować więcej miejsca w magazynie niż inne alternatywy.

Ilekroć sytuacja wymaga połączenia tabel, ważne jest, aby najpierw rozważyć zalety i wady przed podjęciem decyzji o użyciu funkcji UNION. Alternatywy obejmują funkcję SUMX, tabelę modelu danych lub tabelę obliczeniową.

Wszystkiego najlepszego,

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.