Pamięć podręczna danych: co to jest i jak pomaga optymalizować zapytania

W tym samouczku dowiesz się, czym jest pamięć podręczna danych i dlaczego jest ważna. Pamięć podręczna danych przechowuje bity danych, które mogą stać się cenne do wykorzystania w przyszłości.

Jeśli będziesz potrzebować tych samych informacji w przyszłych środkach lub działaniach, pamięć podręczna danych dostarczy potrzebnych informacji. Eliminuje konieczność ponownego pobierania przez system tych samych zestawów danych.

W tym samouczku omówisz osiem ważnych rzeczy, o których należy pamiętać podczas pracy z pamięciami podręcznymi danych w usłudze LuckyTemplates:

Pamięć podręczna danych: co to jest i jak pomaga optymalizować zapytania

Spis treści

Definicja i cel pamięci podręcznej danych

Pamięć podręczna danych: co to jest i jak pomaga optymalizować zapytania

Pamięć podręczna danych to tymczasowa tabela utworzona w pamięci przez mechanizm przechowywania . Ta tymczasowa tabela jest wysyłana do mechanizmu formuł, który następnie iteruje te informacje i wykonuje różne operacje po zapytaniu.

Pamięć podręczna danych: co to jest i jak pomaga optymalizować zapytania

Cała komunikacja między aparatem formuł a aparatem magazynującym zawsze odbywa się w formie pamięci podręcznej danych. Mechanizm formuł przygotowuje plany zapytań, a następnie wysyła instrukcje do mechanizmu magazynu. Mechanizm przechowywania wysyła go następnie z powrotem do silnika formuł, który zwraca wynik z powrotem do użytkownika.

Pamięć podręczna danych: co to jest i jak pomaga optymalizować zapytania

Ponieważ silnik formuł nie ma bezpośredniego dostępu do danych przechowywanych w DirectQuery i VertiPaq, opiera się na silniku pamięci podręcznej danych.

Pamięć podręczna danych: co to jest i jak pomaga optymalizować zapytania

Pamięć podręczna danych wysyłana przez mechanizm pamięci ma format nieskompresowany. Oznacza to, że można zmniejszyć rozmiar danych przechowywanych w narzędziu Vertipaq.

Ale kiedy nadejdzie czas, aby przywrócić pamięć podręczną danych do aparatu formuł, nie można jej skompresować, ponieważ aparat formuł nie działa ze skompresowanymi zestawami danych.

Jaki jest wpływ pamięci podręcznej danych na pamięć RAM

Pamięć podręczna danych: co to jest i jak pomaga optymalizować zapytania

Jeśli silnik pamięci masowej wysyła ogromne ilości pamięci podręcznej danych, zajmie to dużo miejsca w pamięci RAM oprogramowania. Wykonanie iteracji i wygenerowanie wyniku zajmie również znaczną ilość czasu.

Kiedy więc piszesz swój kod DAX, musisz zrozumieć, że powinien on być napisany w sposób minimalizujący liczbę wierszy w pamięci podręcznej danych.

Najlepszym scenariuszem byłoby dopasowanie liczby wierszy pokazanych w wizualizacji do liczby wierszy zwróconych w pamięci podręcznej danych.

W większości przypadków trudno jest zwrócić taką samą liczbę wierszy. W takim przypadku konieczne będzie przejrzenie kodu języka DAX i rozbicie go w taki sposób, aby zoptymalizować pamięć podręczną danych generowaną przez aparat magazynu.

Jak pamięć podręczna danych optymalizuje zapytania

Niezoptymalizowane funkcje

Pamięć podręczna danych: co to jest i jak pomaga optymalizować zapytania

Niektóre funkcje w języku DAX nie są zoptymalizowane pod kątem aparatu pamięci masowej. Aby lepiej to zrozumieć, spójrzmy na przykład.

Na przykład w swoim kodzie, zamiast używać SUMMARIZE, możesz użyć funkcji . Funkcje SUMMARIZE i GROUPBY wykonują tę samą operację. Istnieją jednak zauważalne różnice w zależności od scenariusza.

Funkcja GROUPBY nie jest zoptymalizowana pod kątem mechanizmu pamięci masowej. Jeśli użyjesz funkcji GROUPBY na tabeli faktów zawierającej 12 milionów wierszy, utworzy ona pamięć podręczną danych z taką samą liczbą wierszy. Może to być tak duże, jak 600 MB do 1 GB.

Ten rozmiar może wywierać duży nacisk na pamięć RAM. Więc zamiast używać GROUPBY, użyj . Funkcja SUMMARIZE powoduje zmniejszenie rozmiaru pamięci podręcznej danych. Możesz sparować go z GROUPBY jako funkcją najwyższego poziomu.

Zredukowane powtórzenia

Podczas pisania miar lub zapytań języka DAX należy upewnić się, że kod tworzony za kulisami jest odpowiedni dla mechanizmu pamięci masowej.

Pamięć podręczna danych: co to jest i jak pomaga optymalizować zapytania

Musisz napisać swój kod DAX w sposób, który tworzy pamięć podręczną danych, która może być również używana w kolejnych zapytaniach. Korzyść z tego jest taka, że ​​zamiast przeprowadzać osobne skanowanie za pomocą VertiPaq , mechanizm przechowywania sprawdzi, czy podobne zapytanie zostało już odebrane.

Jeśli to prawda, oznacza to, że jego pamięć podręczna danych jest dostępna w pamięci. Zamiast więc ponownie skanować zapytanie, VertiPaq po prostu zwróci je z pamięci podręcznej do silnika formuł.

Pamięć podręczna danych: co to jest i jak pomaga optymalizować zapytania

Jeśli w zapytaniu aparatu pamięci masowej zobaczysz operator CALLBACKDATAID , oznacza to, że te zapytania nie mogą być buforowane. Jeśli w przypadku wysłania podobnego zapytania do silnika pamięci masowej, wykona on powtórzenie.

W związku z tym VertiPaq będzie musiał wywołać silnik formuły, aby rozwiązać zapytanie. Zwiększa to ogólny czas wykonania, ponieważ w tym przypadku nie można użyć pamięci podręcznej.

Wniosek

Pamięć podręczna danych to Twój najlepszy przyjaciel w języku DAX. Pamiętaj, aby napisać kod DAX w sposób maksymalizujący przestrzeń dyskową i zmniejszający liczbę iteracji narzędzia VertiPaq. Możesz ponownie wykorzystać pamięć podręczną danych już utworzoną przez Storage Engine, aby skrócić czas wykonywania zapytania.

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.