Udostępnij za pośrednictwem


Wizualizowanie i interpretowanie diagnostyki zapytań w usłudze Power BI

Wprowadzenie

Po zarejestrowaniu diagnostyki, której chcesz użyć, następnym krokiem jest możliwość zrozumienia tego, co mówią.

Warto dobrze zrozumieć, co dokładnie każda kolumna w schemacie diagnostyki zapytań oznacza, że nie będziemy powtarzać się w tym krótkim samouczku. Jest tu pełny zapis.

Ogólnie rzecz biorąc, podczas tworzenia wizualizacji lepiej użyć pełnej szczegółowej tabeli. Ponieważ niezależnie od liczby wierszy, na które prawdopodobnie patrzysz, jest pewnego rodzaju przedstawienie sposobu, w jaki czas spędzony w różnych zasobach sumuje się lub jakie zapytanie natywne było emitowane.

Jak wspomniano w naszym artykule dotyczącym rejestrowania diagnostyki, pracuję z danymi OData i śladami SQL dla tej samej tabeli (lub prawie tak) — tabelą Customers z Northwind. W szczególności skupię się na wspólnym pytaniu naszych klientów i jednym z łatwiejszych do interpretacji zestawów śladów: pełnego odświeżania modelu danych.

Kompilowanie wizualizacji

Podczas przechodzenia przez ślady można je ocenić na wiele sposobów. W tym artykule skoncentrujemy się na dwóch podzielonych wizualizacjach — jednej, aby pokazać szczegółowe informacje, o których ci zależy, a drugą , aby łatwo przyjrzeć się współtworzeniu różnych czynników. W pierwszej wizualizacji jest używana tabela. Możesz wybrać dowolne pola, ale te, które są zalecane dla łatwego, wysokiego poziomu, przyjrzyj się temu, co się dzieje:

W przypadku drugiej wizualizacji jedną z opcji jest użycie skumulowanego wykresu kolumnowego. W parametrze "Oś" możesz użyć parametru "Id" lub "Step". Jeśli patrzymy na odświeżanie, ponieważ nie ma nic wspólnego z krokami w samym Edytorze, prawdopodobnie chcemy po prostu przyjrzeć się identyfikatorowi. Dla parametru "Legenda" należy ustawić wartość "Kategoria" lub "Operacja" (w zależności od żądanego stopnia szczegółowości). Dla wartości "Value" ustaw wartość "Exclusive Duration" (i upewnij się, że nie jest to %, aby uzyskać nieprzetworzone wartości czasu trwania). Na koniec dla etykietki narzędzia ustaw wartość "Najwcześniejszy czas rozpoczęcia".

Po skompilowaniu wizualizacji upewnij się, że sortujesz według kolejności "Najwcześniejszy czas rozpoczęcia", aby zobaczyć kolejność.

Wizualizacja szczegółów i agregacji czasu.

Chociaż dokładne potrzeby mogą się różnić, ta kombinacja wykresów jest dobrym miejscem do rozpoczęcia wyszukiwania wielu plików diagnostycznych i wielu celów.

Interpretowanie wizualizacji

Jak wspomniano powyżej, istnieje wiele pytań, na które można odpowiedzieć za pomocą diagnostyki zapytań, ale te dwa, które widzimy, najczęściej pytają, jak poświęcany jest czas i pytają, jakie zapytanie jest wysyłane do źródła.

Pytanie, jak czas spędzony jest łatwy i będzie podobny dla większości łączników. Ostrzeżenie z diagnostyką zapytań, jak wspomniano w innym miejscu, jest to, że zobaczysz drastycznie różne możliwości w zależności od łącznika. Na przykład wiele łączników opartych na odBC nie będzie miało dokładnego rejestrowania, jakie zapytanie jest wysyłane do rzeczywistego systemu zaplecza, ponieważ dodatek Power Query widzi tylko to, co wysyła do sterownika ODBC.

Jeśli chcemy zobaczyć, jak spędzasz czas, możemy po prostu przyjrzeć się wizualizacjom utworzonym powyżej.

Teraz, ponieważ wartości czasu dla przykładowych zapytań używanych w tym miejscu są tak małe, jeśli chcemy pracować z czasem raportowania usługi Power BI, lepiej jest przekonwertować kolumnę Wyłączny czas trwania na wartość "Sekundy" w edytorze Power Query. Po zakończeniu tej konwersji możemy przyjrzeć się naszemu wykresowi i uzyskać przyzwoity pomysł na to, gdzie jest spędzany czas.

W przypadku moich wyników OData widzę na obrazie, że zdecydowana większość czasu spędziła na pobieraniu danych ze źródła — jeśli wybierzę element "Źródło danych" na legendzie, pokazuje mi wszystkie różne operacje związane z wysyłaniem zapytania do źródła danych.

Podsumowanie diagnostyki zapytań OData Northwind.

Jeśli wykonamy wszystkie te same operacje i utworzymy podobne wizualizacje, ale ze śladami SQL zamiast tych ODATA, zobaczymy, jak porównać te dwa źródła danych!

OData Northwind Query Diagnostics Summary with SQL traces (Podsumowanie diagnostyki zapytań OData Northwind za pomocą śladów SQL).

Jeśli wybierzemy tabelę Źródło danych, podobnie jak w przypadku diagnostyki ODATA, możemy zobaczyć pierwszą ocenę (2.3 na tym obrazie) emituje zapytania metadanych, a druga ocena rzeczywiście pobiera dane, o których nam zależy. Ponieważ w tym przypadku pobieramy małe ilości danych, dane pobierane z powrotem zajmują niewielką ilość czasu (mniej niż dziesiąta sekundy dla całej drugiej oceny, z mniej niż dwudziestą sekundą w przypadku samego pobierania danych), ale nie będzie to prawdziwe we wszystkich przypadkach.

Jak powyżej, możemy wybrać kategorię "Źródło danych" na legendzie, aby wyświetlić emitowane zapytania.

Zagłębianie się w dane

Przyglądanie się ścieżkom

Jeśli na to patrzysz, jeśli wygląda na to, że czas spędzony jest dziwny — na przykład w zapytaniu OData może zostać wyświetlone zapytanie źródła danych o następującej wartości:

Request:
https://services.odata.org/V4/Northwind/Northwind.svc/Customers?$filter=ContactTitle%20eq%20%27Sales%20Representative%27&$select=CustomerID%2CCountry HTTP/1.1
Content-Type: application/json;odata.metadata=minimal;q=1.0,application/json;odata=minimalmetadata;q=0.9,application/atomsvc+xml;q=0.8,application/atom+xml;q=0.8,application/xml;q=0.7,text/plain;q=0.7

<Content placeholder>

Response:
Content-Type: application/json;odata.metadata=minimal;q=1.0,application/json;odata=minimalmetadata;q=0.9,application/atomsvc+xml;q=0.8,application/atom+xml;q=0.8,application/xml;q=0.7,text/plain;q=0.7
Content-Length: 435

<Content placeholder>

To zapytanie źródła danych jest skojarzone z operacją, która zajmuje tylko 1% czasu trwania wyłącznego. Tymczasem jest podobny:

Request:
GET https://services.odata.org/V4/Northwind/Northwind.svc/Customers?$filter=ContactTitle eq 'Sales Representative'&$select=CustomerID%2CCountry HTTP/1.1

Response:
https://services.odata.org/V4/Northwind/Northwind.svc/Customers?$filter=ContactTitle eq 'Sales Representative'&$select=CustomerID%2CCountry
HTTP/1.1 200 OK

To zapytanie źródła danych jest skojarzone z operacją, która zajmuje prawie 75% czasu trwania wyłącznego. Jeśli włączysz ścieżkę, odkryjesz, że ten ostatni jest w rzeczywistości dzieckiem byłego. Oznacza to, że pierwsze zapytanie w zasadzie dodało niewielką ilość czasu na własną rękę, a rzeczywiste pobieranie danych jest śledzone przez zapytanie "wewnętrzne".

Są to skrajne wartości, ale znajdują się one w granicach tego, co można zobaczyć.