Diagnozowanie problemów za pomocą analizatora wydajności

Ukończone

Aby rozwiązać problem z wydajnością, należy go znaleźć. Analizator wydajności jest podstawowym narzędziem diagnostycznym wbudowanym w Power BI do identyfikowania, co działa wolno w raporcie i dlaczego. Mierzy, jak długo trwa ładowanie poszczególnych wizualizacji i dzieli ten czas na kategorie, dzięki czemu można wskazać dokładnie, gdzie znajduje się wąskie gardło.

Otwórz analizator wydajności

W programie Power BI Desktop wybierz wstążkę Optimize a następnie wybierz wstążkę Performance analyzer. Okienko analizatora wydajności zostanie otwarte po prawej stronie kanwy raportu. Gdy okienko będzie widoczne, możesz rozpocząć nagrywanie.

 Zrzut ekranu przedstawiający wstążkę Optymalizacja w programie Power BI Desktop z wyróżnionym analizatorem wydajności.

Uwaga / Notatka

Analizator wydajności jest również dostępny w usługa Power BI. Otwórz raport w trybie edycji, wybierz menu Widok , a następnie wybierz pozycję Analizator wydajności. Podziały czasu i funkcje kopiowania zapytań działają w taki sam sposób.

Rejestrowanie i mierzenie wydajności

Aby przechwycić dane chronometrażu, wykonaj następujące kroki:

  1. Wybierz pozycję Rozpocznij nagrywanie w okienku Analizator wydajności.
  2. Interakcja z raportem: odświeżanie wizualizacji, dostosowywanie fragmentatorów lub nawigowanie między stronami.
  3. Obserwuj rezultaty chronometrażu wyświetlane w czasie rzeczywistym dla każdej wizualizacji.
  4. Wybierz Zatrzymaj po przechwyceniu wystarczającej ilości danych.

Każda interakcja (na przykład zmiana fragmentatora lub odświeżanie strony) tworzy sekcję w okienku. W każdej sekcji zobaczysz poszczególne wizualizacje i ich czasy ładowania.

Zrzut ekranu przedstawiający panel Analizatora wydajności z wynikami pomiaru czasu.

Wskazówka

Wyczyść pamięć podręczną widoku przed pomiarem, aby uzyskać dokładne wyniki. W programie Power BI Desktop ta opcja znajduje się w okienku Analizator wydajności. Buforowane dane mogą maskować rzeczywistą wydajność zapytań, dzięki czemu wyczyszczenie gwarantuje pomiar czasu wykonywania w czasie rzeczywistym.

Można również zmierzyć pojedynczą wizualizację. Gdy analizator wydajności rejestruje, wybierz ikonę Analizuj tę wizualizację w prawym górnym rogu dowolnej wizualizacji, aby odświeżyć i przechwycić dane dotyczące wydajności osobno.

Zrzut ekranu przedstawiający okienko Analizator wydajności po przeanalizowaniu pojedynczej wizualizacji.

Zrozumienie metryk czasowych

Analizator wydajności dzieli czas ładowania każdej wizualizacji na kilka kategorii:

Metryka Co mierzy
Zapytanie języka DAX Czas wysyłania zapytania do modelu semantycznego i odbierania wyników przez wizualizację. Jest to najczęstsze wąskie gardło.
Wyświetlanie wizualizacji Czas renderowania obrazu na ekranie, w tym pobieranie obrazów z internetu lub geokodowania.
Zapytanie bezpośrednie Czas wysyłania zapytań do zewnętrznego źródła danych w przypadku korzystania z trybu przechowywania DirectQuery.
Inna Czas przetwarzania w tle, w tym oczekiwanie na ukończenie innych wizualizacji, przygotowanie zapytań i obciążenie sieci.

Wartość Czas trwania (ms) reprezentuje całkowity czas od początku do końca dla każdej operacji. Ponieważ większość operacji są wykonywane sekwencyjnie w jednym wątku interfejsu użytkownika, zgłoszone czasy trwania mogą obejmować czas spędzony w kolejce, zanim inne elementy wizualne skończą.

Podczas diagnozowania powolnego raportu należy najpierw skoncentrować się na największym współautorze. Jeśli czas wykonywania zapytania DAX jest dominujący, problem dotyczy modelu lub miary. Jeśli czas wyświetlania wizualizacji jest wysoki, wizualizacja renderuje zbyt dużo danych. Jeśli czas zapytania bezpośredniego jest duży, problem może dotyczyć zewnętrznego źródła danych lub składania zapytań.

Eksportowanie i analizowanie zapytań języka DAX

Jedną z najbardziej przydatnych funkcji analizatora wydajności jest możliwość wyodrębnienia dokładnego zapytania języka DAX wysyłanego przez wizualizację do modelu semantycznego. Dzięki temu można analizować, dlaczego określone zapytanie działa wolno.

Aby wyeksportować zapytanie DAX:

  1. Rozwiń wpis wizualizacji w oknie Analizatora wydajności.
  2. Wybierz pozycję Uruchom w widoku zapytania języka DAX , aby automatycznie otworzyć zapytanie na nowej karcie, lub wybierz pozycję Kopiuj zapytanie , aby skopiować je do schowka.
  3. W widoku zapytań DAX uruchom zapytanie i przejrzyj wyniki.

Siatka wyników pokazuje dane, które wizualizacja wykorzystuje. Możesz sprawdzić strukturę zapytań, zidentyfikować kosztowne operacje i przetestować optymalizacje bezpośrednio w widoku zapytania języka DAX.

Zrzut ekranu zapytania w widoku zapytań DAX po otwarciu z analizatora wydajności.

Zapytanie języka DAX generowane przez wizualizację danych bywa często bardziej rozbudowane niż zapytanie napisane ręcznie. Zawiera dodatkowe zmienne, funkcje TOPN oraz odwołania do kolumn, które obsługują przełączanie typów wizualizacji. Jeśli Copilot jest dostępna, może pomóc uprościć strukturę zapytań w widoku zapytań języka DAX. Spróbuj użyć monitu, takiego jak "Usuń VAR i TOPN, a następnie uprość to zapytanie języka DAX".

Uwaga / Notatka

W usługa Power BI przycisk Run w widoku zapytania języka DAX jest niedostępny. Zamiast tego skopiuj zapytanie, wybierz pozycję Otwórz model danych , aby otworzyć środowisko modelowania internetowego, a następnie przełącz się do widoku zapytania języka DAX, aby wkleić go i uruchomić. Zapytania w Internecie nie są zapisywane po zamknięciu przeglądarki.

Używanie programu DAX Studio do dokładniejszej diagnostyki

DAX Studio to bezpłatne narzędzie typu open source, które łączy się z lokalnym modelem semantycznym lub z opublikowanym modelem semantycznym za pośrednictwem punktu końcowego XMLA. Program DAX Studio oferuje możliwości wykraczające poza wbudowany widok zapytań języka DAX:

  • Chronometraż serwera: rozbija wykonanie zapytań na czas silnika formuł (FE) i czas silnika magazynującego (SE), pokazując dokładnie, gdzie silnik koncentruje wysiłek.
  • Plan zapytania: wyświetla logiczny i fizyczny plan zapytania, który pomaga identyfikować nieefektywne operacje w złożonych miarach.
  • Metryki modelu: analizuje rozmiary tabel i kolumn, kardynalność i statystyki kompresji, dzięki czemu można zidentyfikować największych współautorów rozmiaru modelu.

Program DAX Studio jest szczególnie przydatny, gdy potrzebujesz diagnostyki na poziomie silnika, której nie ujawnia analizator wydajności ani widok zapytań DAX, lub gdy nie masz dostępu do Copilot do uproszczania zapytań. Procedura jest taka sama: skopiuj zapytanie języka DAX z analizatora wydajności, wklej je do programu DAX Studio i użyj czasów serwera oraz planów zapytań, aby zrozumieć, gdzie silnik spędza swój czas.

Skuteczne interpretowanie wyników

Same nieprzetworzone liczby nie opowiadają pełnej historii. Efektywna diagnostyka wymaga porównania wyników w kontekście:

  • Porównaj względne czasy w wizualizacjach. Jeśli jedna wizualizacja zajmuje 5000 ms, a wszystkie inne zajmują poniżej 200 ms, ta wizualizacja jest obszarem skupienia.
  • Zidentyfikuj kategorię wąskich gardeł. Wizualizacja z 4800 ms czasu przetwarzania zapytania DAX i 200 ms przy wyświetlaniu wizualizacji oznacza problem z modelem danych lub miarą, a nie problem z renderowaniem.
  • Przetestuj przy użyciu reprezentatywnych danych. Pomiary wydajności zestawu danych deweloperskich z 1000 wierszami nie odzwierciedlają dokładnie wydajności produkcyjnej zestawu danych z 10 milionami wierszy.
  • Powtarzaj pomiary. Pojedynczy pomiar może mieć wpływ na buforowanie, zmienność sieci lub procesy w tle. Uruchom pomiar wiele razy i obserwuj wzorzec.

Rozważmy ten przykład: strona raportu ma pięć wizualizacji. Po wyczyszczeniu pamięci podręcznej i odświeżeniu wszystkich wizualizacji wyniki wyglądają następująco:

Element wizualny Zapytanie DAX (ms - milisekundy) Wyświetlanie wizualne (ms) Suma (ms)
Przychód według regionu (wykres słupkowy) 120 80 200
Trend miesięczny (wykres liniowy) 150 90 240
Szczegóły produktu (tabela) 4,500 300 4,800
Karta KPI 50 30 80
Najlepsi klienci (tabela) 180 110 290

Tabela szczegółów produktu jest wyraźnie odstająca. Czas zapytania DAX wynoszący 4500 ms wskazuje na kosztowną operację lub nadmierne żądanie danych. Następnym krokiem jest skopiowanie tego zapytania, przeanalizowanie go w widoku zapytania języka DAX i określenie, czy problem jest złożonym obliczeniem, nieefektywnym wzorcem filtru, czy też zwracaniem zbyt dużej ilości danych.

Najlepsze rozwiązania dotyczące pomiaru wydajności

Postępuj zgodnie z poniższymi wytycznymi, aby uzyskać niezawodne i możliwe do działania wyniki z analizatora wydajności:

  • Wyczyść pamięć podręczną wizualizacji przed każdym testem. Buforowane wyniki maskują rzeczywisty czas wykonania zapytania.
  • Izolowanie zmiennych. Zmień jedną rzecz na raz, a następnie zmierz ponownie.
  • Przetestuj realistyczne scenariusze. Użyj danych produkcyjnych i typowych ustawień filtrów.
  • Punkty odniesienia dokumentu. Rejestruj wyniki chronometrażu przed zmianami i po nich, aby można było zmierzyć ulepszenia.
  • Skoncentruj się na wizualizacjach wpływających na użytkownika. Określanie priorytetów wizualizacji na domyślnej stronie docelowej i najczęściej używanych stronach raportu.

Narzędzie do analizy wydajności to punkt wyjścia w procesie rozwiązywania problemów. Informuje o tym, co działa wolno, a która kategoria (DAX, visual, DirectQuery) przyczynia się najbardziej. Następnym krokiem jest rozwiązanie problemu: rozpoczęcie od optymalizacji języka DAX.