Querydiagnose visualiseren en interpreteren in Power BI

Inleiding

Zodra u de diagnostische gegevens hebt vastgelegd die u wilt gebruiken, is de volgende stap in staat om te begrijpen wat ze zeggen.

Het is handig om goed te begrijpen wat precies elke kolom in het querydiagnoseschema betekent, wat we in deze korte zelfstudie niet gaan herhalen. Er is hier een volledige schrijfbewerking.

Over het algemeen is het beter om bij het bouwen van visualisaties de volledige gedetailleerde tabel te gebruiken. Omdat, ongeacht hoeveel rijen het is, wat u waarschijnlijk bekijkt, een soort afbeelding is van hoe de tijd die in verschillende resources is besteed, optelt of wat de systeemeigen query is verzonden.

Zoals vermeld in ons artikel over het vastleggen van de diagnostische gegevens, werk ik met de OData- en SQL-traceringen voor dezelfde tabel (of bijna zo): de tabel Klanten uit Northwind. In het bijzonder richt ik me op veelvoorkomende vragen van onze klanten en een van de eenvoudiger te interpreteren sets traceringen: volledige vernieuwing van het gegevensmodel.

De visualisaties bouwen

Wanneer u traceringen doorloopt, zijn er veel manieren waarop u ze kunt evalueren. In dit artikel gaan we ons richten op een twee visualisatiesplitsing, waarbij de details die u belangrijk vindt, en de andere om eenvoudig te kijken naar tijdbijdragen van verschillende factoren. Voor de eerste visualisatie wordt een tabel gebruikt. U kunt alle gewenste velden kiezen, maar de velden die worden aanbevolen voor een eenvoudig, hoog niveau, kijken naar wat er aan de hand is:

Voor de tweede visualisatie kunt u een gestapeld kolomdiagram gebruiken. In de parameter As wilt u misschien 'Id' of 'Stap' gebruiken. Als we naar vernieuwen kijken, omdat het niets te maken heeft met stappen in de editor zelf, willen we waarschijnlijk alleen 'Id' bekijken. Voor de parameter Legenda moet u Categorie of Bewerking instellen (afhankelijk van de gewenste granulariteit). Stel voor 'Waarde' 'Exclusieve duur' in (en zorg ervoor dat dit niet de %is, zodat u de onbewerkte duurwaarde krijgt). Stel ten slotte voor de knopinfo 'Vroegste begintijd' in.

Zodra uw visualisatie is gemaakt, zorgt u ervoor dat u op 'Vroegste begintijd' sorteert, zodat u kunt zien in welke volgorde er dingen gebeuren.

Visualisatie van details en tijdaggregatie.

Hoewel uw exacte behoeften kunnen verschillen, is deze combinatie van grafieken een goede plek om te beginnen met het bekijken van talloze diagnostische bestanden en voor een aantal doeleinden.

De visualisaties interpreteren

Zoals hierboven vermeld, zijn er veel vragen die u kunt beantwoorden met querydiagnose, maar de twee die we het vaakst zien, vragen hoe de tijd wordt besteed en vragen wat de query is die naar de bron is verzonden.

Vragen hoe de tijd wordt besteed, is eenvoudig en zal vergelijkbaar zijn voor de meeste connectors. Een waarschuwing met querydiagnose, zoals elders vermeld, is dat u drastisch verschillende mogelijkheden ziet, afhankelijk van de connector. Veel ODBC-connectors hebben bijvoorbeeld geen nauwkeurige opname van welke query naar het werkelijke back-endsysteem wordt verzonden, omdat Power Query alleen ziet wat er naar het ODBC-stuurprogramma wordt verzonden.

Als we willen zien hoe de tijd wordt besteed, kunnen we alleen kijken naar de visualisaties die we hierboven hebben gebouwd.

Omdat de tijdwaarden voor de voorbeeldquery's die we hier gebruiken zo klein zijn, als we willen werken met de tijd die power BI rapporteert, is het beter als we de kolom Exclusieve duur converteren naar Seconden in de Power Query-editor. Zodra we deze conversie hebben uitgevoerd, kunnen we onze grafiek bekijken en een fatsoenlijk beeld krijgen van waar de tijd wordt besteed.

Voor mijn OData-resultaten zie ik in de afbeelding dat de meeste tijd is besteed aan het ophalen van de gegevens uit de bron. Als ik het item 'Gegevensbron' in de legenda selecteer, worden alle verschillende bewerkingen weergegeven die betrekking hebben op het verzenden van een query naar de gegevensbron.

Samenvatting van OData Northwind-querydiagnose.

Als we dezelfde bewerkingen uitvoeren en vergelijkbare visualisaties bouwen, maar met de SQL-traceringen in plaats van de ODATA-traceringen, kunnen we zien hoe de twee gegevensbronnen zich verhouden.

Samenvatting van OData Northwind Query Diagnostics met SQL-traceringen.

Als we de tabel Gegevensbron selecteren, zoals met de ODATA-diagnose, zien we de eerste evaluatie (2.3 in deze afbeelding) metagegevensquery's, waarbij de tweede evaluatie daadwerkelijk de gegevens opvraagt die we belangrijk vinden. Omdat we in dit geval kleine hoeveelheden gegevens ophalen, duurt het een kleine hoeveelheid tijd voordat de gegevens worden opgehaald (minder dan tiende van een seconde voor de hele tweede evaluatie, met minder dan een twintigste van een seconde voor het ophalen van gegevens zelf), maar dat geldt in alle gevallen niet.

Zoals hierboven, kunnen we de categorie 'Gegevensbron' in de legenda selecteren om de verzonden query's te zien.

In de gegevens graven

Paden bekijken

Wanneer u dit bekijkt, als het lijkt alsof de tijd vreemd is, ziet u bijvoorbeeld in de OData-query mogelijk dat er een gegevensbronquery is met de volgende waarde:

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>

Deze gegevensbronquery is gekoppeld aan een bewerking die slechts 1% van de exclusieve duur in beslag neemt. Ondertussen is er een vergelijkbare:

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

Deze gegevensbronquery is gekoppeld aan een bewerking die bijna 75% van de exclusieve duur in beslag neemt. Als u het pad inschakelt, ontdekt u dat de laatste eigenlijk een kind van de vroegere is. Dit betekent dat de eerste query in feite een kleine hoeveelheid tijd op zichzelf heeft toegevoegd, waarbij de werkelijke gegevens worden bijgehouden door de 'inner'-query.

Dit zijn extreme waarden, maar ze vallen binnen de grenzen van wat er kan worden gezien.