Querydiagnose visualiseren en interpreteren in Power BI

Introductie

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

Het is handig om een goed beeld te hebben van wat elke kolom in het schema voor diagnostische query's precies betekent. Dit gaan we niet herhalen in deze korte zelfstudie. Hier is een volledige opschoning van die .

Over het algemeen is het beter om bij het bouwen van visualisaties de volledige gedetailleerde tabel te gebruiken, omdat wat het aantal rijen ook is, wat u waarschijnlijk ziet, een soort weergave is van hoe de tijd die in verschillende resources is besteed, opeenvult of wat de systeemeigen query is die is uitgegeven.

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 van Northwind. In het bijzonder richt ik me op veelvoorkomende vragen van onze klanten, evenals een van de gemakkelijkst te interpreteren sets traceringen: volledige vernieuwing van het gegevensmodel.

De visualisaties bouwen

Wanneer u traceringen doormaakt, zijn er veel manieren waarop u ze kunt evalueren. In dit artikel gaan we ons richten op een splitsing van twee visualisaties: een om de details weer te geven die u belangrijk vindt en de andere om eenvoudig tijdsbijdragen van verschillende factoren te bekijken. Voor de eerste visualisatie wordt een tabel gebruikt. U kunt alle velden kiezen die u wilt, maar de velden die worden aanbevolen voor een eenvoudige, hoogwaardige kijk op wat er gebeurt, zijn:

Voor de tweede visualisatie kunt u het beste een gestapeld kolomdiagram gebruiken. In de parameter As wilt u mogelijk 'Id' of'Stap'gebruiken. Als we naar Vernieuwen kijken, omdat deze niets te maken heeft met stappen in de editor zelf, willen we waarschijnlijk alleen naar'Id'kijken. Voor de parameter Legenda moet uCategorieofBewerkinginstellen (afhankelijk van de granulariteit die u wilt). Stel voor de waarde 'Exclusieveduur'in (en zorg ervoor dat het niet de %-waarde is, zodat u de onbewerkte duurwaarde krijgt). Stel ten slotte voor de knopinfo 'Vroegste begintijd'in.

Nadat uw visualisatie is gebouwd, moet u oplopend sorteren op 'Vroegste begintijd', zodat u kunt zien in welke volgorde dingen plaatsvinden.

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 een groot aantal diagnostische bestanden en voor een aantal doeleinden.

De visualisaties interpreteren

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

Vragen hoe de tijd wordt besteed, is eenvoudig en zal voor de meeste connectors vergelijkbaar zijn. Een waarschuwing met diagnostische query's, zoals elders vermeld, is dat u drastisch verschillende mogelijkheden ziet, afhankelijk van de connector. Veel odbc-connectors hebben bijvoorbeeld geen nauwkeurige registratie van welke query naar het daadwerkelijke 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 gemaakt.

Omdat de tijdwaarden voor de voorbeeldquery's die we hier gebruiken zo klein zijn, is het beter om de kolom Exclusieve duur te converteren naar Seconden in de Power Query-editor, omdat Power BI de tijdwaarden voor de voorbeeldquery's zo klein zijn. Zodra we dit doen, kunnen we onze grafiek bekijken en een redelijk goed beeld krijgen van waar de tijd wordt besteed.

Voor mijn OData-resultaten zie ik in de afbeelding dat het overgrote deel van de tijd is besteed aan het ophalen van de gegevens uit de bron. Als ik op het item Gegevensbron in de legenda klik, ziet u alle verschillende bewerkingen met betrekking tot het verzenden van een query naar de gegevensbron.

OData Northwind Query Diagnostics Summary(Samenvatting van OData Northwind Query Diagnostics).

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

OData Northwind Query Diagnostics Summary(Samenvatting van OData Northwind Query Diagnostics).

Als we op de tabel Gegevensbron klikken, zoals bij de ODATA-diagnostische gegevens, zien we dat met de eerste evaluatie (2.3 in deze afbeelding) metagegevensquery's worden ingediend. Bij de tweede evaluatie worden de gegevens opgehaald die we belangrijk vinden. Omdat we in dit geval zeer weinig gegevens ophalen, kost het ophalen van de gegevens weinig tijd (minder dan een tiende van een seconde voor de volledige tweede evaluatie, met minder dan een seconde voor het ophalen van gegevens zelf), maar dat is in alle gevallen niet waar.

Zoals hierboven kunnen we op de categorie Gegevensbron in de legenda klikken om de uit te geven query's te zien.

Spitten in de gegevens

Paden verkennen

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

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 gebruik neemt. In de tussentijd 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 gebruik neemt. Als u Pad int,ontdekt u dat de laatste in feite een onderliggende van de eerste is. Dit betekent dat de eerste query in feite weinig tijd op zichzelf heeft toegevoegd, omdat het daadwerkelijke ophalen van gegevens wordt bijgespoord door de 'interne' query.

Dit zijn extreme waarden, maar ze liggen binnen de grenzen van wat er mogelijk wordt gezien.