Diagnozowanie problemów za pomocą analizatora wydajności
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.
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:
- Wybierz pozycję Rozpocznij nagrywanie w okienku Analizator wydajności.
- Interakcja z raportem: odświeżanie wizualizacji, dostosowywanie fragmentatorów lub nawigowanie między stronami.
- Obserwuj rezultaty chronometrażu wyświetlane w czasie rzeczywistym dla każdej wizualizacji.
- 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.
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.
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:
- Rozwiń wpis wizualizacji w oknie Analizatora wydajności.
- 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.
- 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.
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.