Visualizzare e interpretare la diagnostica delle query in Power BI

Dopo aver registrato la diagnostica che si vuole usare, il passaggio successivo consiste nel comprendere cosa dicono.

È utile avere una buona conoscenza del significato di ogni colonna nello schema di diagnostica delle query. Questa esercitazione non tratta tali informazioni. Per una descrizione completa, consulta Diagnostica delle query.

In generale, quando si compilano visualizzazioni, usare la tabella dettagliata completa. Indipendentemente dal numero di righe che contiene, probabilmente si sta guardando una sorta di rappresentazione di come si somma il tempo impiegato nelle diverse risorse oppure di quale query nativa è stata emessa.

Come accennato nell'articolo sulla registrazione della diagnostica, questo esempio funziona con le tracce OData e SQL per la tabella Customers di Northwind. In particolare, l'attenzione è rivolta a una richiesta comune dei clienti e a uno dei set di tracce più facili da interpretare: aggiornamento completo del modello di dati.

Creare le visualizzazioni

Quando si esaminano le tracce, è possibile valutarle in molti modi. Questo articolo descrive due visualizzazioni. La prima visualizzazione mostra i dettagli di cui si è a cuore e l'altro mostra i contributi temporali di vari fattori. Per la prima visualizzazione, usare una tabella. È possibile selezionare tutti i campi desiderati, ma per un'analisi di alto livello semplice, usare i campi seguenti:

Per la seconda visualizzazione, utilizza un grafico a colonne in pila. Nel parametro Axis usare ID o Step. Se stai considerando Refresh, poiché non ha nulla a che fare con i passaggi nell'Editor stesso, probabilmente ti basta considerare Id. Per il parametro Legend, imposta Category o Operation (a seconda della granularità desiderata). Per il parametro Value, impostare Durata esclusiva e assicurarsi che non sia impostato su %, in modo da ottenere il valore di durata grezzo. Infine, per il parametro Tooltip, impostare l'Ora di inizio più anticipata.

Dopo aver creato la visualizzazione, assicurarsi di ordinare per Ora di inizio più precoce in ordine crescente, in modo da poter vedere l'ordine in cui si verificano gli eventi.

Schermata della diagnostica delle query con la tabella delle tracce e il grafico a barre in pila della durata per categoria e ID.

Anche se le esigenze esatte potrebbero differire, questa combinazione di grafici è un buon punto di partenza per esaminare numerosi file di diagnostica e per molti scopi.

Interpretare le visualizzazioni

Come accennato in precedenza, la diagnostica delle query consente di rispondere a molte domande. Le due domande più comuni sono come viene impiegato il tempo e quale query viene inviata alla fonte.

Comprendere il modo in cui viene impiegato il tempo è semplice ed è simile per la maggior parte dei connettori. Tuttavia, come accennato altrove, vengono visualizzate funzionalità drasticamente diverse a seconda del connettore. Ad esempio, molti connettori basati su ODBC non forniscono un record accurato della query che Power Query invia al driver ODBC.

Per vedere come viene impiegato il tempo, esaminare le visualizzazioni create in precedenza.

Poiché i valori temporali delle query di esempio usate qui sono così piccoli, se si vuole lavorare con il modo in cui Power BI riporta il tempo, è preferibile convertire la colonna Durata esclusiva in secondi nell'Editor di Power Query. Dopo aver eseguito questa conversione, è possibile esaminare il grafico e ottenere un'idea chiara del punto in cui viene impiegato il tempo.

Per i risultati OData, l'immagine seguente mostra che la maggior parte del tempo viene impiegato per recuperare i dati dall'origine. Se si seleziona l'elemento Origine dati nella legenda, vengono visualizzate tutte le diverse operazioni correlate all'invio di una query all'origine dati.

Schermata della diagnostica delle query OData con tabella delle tracce dettagliate e grafico della durata che evidenzia il tempo dell'origine dati.

Se si eseguono tutte le stesse operazioni e si creano visualizzazioni simili, ma si usano le tracce SQL anziché quelle ODATA, è possibile vedere come vengono confrontate le due origini dati.

Screenshot della tabella delle tracce dettagliate che mostra le valutazioni SQL e un grafico che confronta la durata esclusiva in base all'ID e alla categoria.

Se si seleziona la tabella dell'origine dati, ad esempio con la diagnostica ODATA, si noterà che la prima valutazione (2.3 in questa immagine) invia query sui metadati e la seconda valutazione recupera i dati di cui si è interessati. In questo esempio vengono recuperate piccole quantità di dati, quindi il recupero dei dati richiede una piccola quantità di tempo (inferiore a un decimo di secondo per l'intera valutazione, con meno di un ventesimo di secondo per il recupero dei dati stesso), ma tale velocità non è vera in tutti i casi.

Come in precedenza, selezionare la categoria Origine dati nella legenda per visualizzare le query generate.

Approfondire i dati

Esaminare i percorsi

Quando si esaminano questi dati, è possibile notare che il tempo impiegato sembra insolito. Ad esempio, nella query OData, potresti notare che è presente una query dell'origine dati con il valore seguente:

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>

Questa query dell'origine dati è associata a un'operazione che rappresenta solo, ad esempio, l'1% della durata esclusiva. Nel frattempo, c'è uno simile:

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

Questa query dell'origine dati è associata a un'operazione che occupa quasi il 75% della durata esclusiva. Se si attiva il Percorso, si scopre che quest'ultimo è effettivamente un figlio del primo. Ciò significa che la prima query aggiunge in pratica solo una piccola quantità di tempo di per sé, mentre il recupero effettivo dei dati viene tracciato dalla query inner.

Questi valori sono estremi, ma si trovano entro i limiti di ciò che si potrebbe vedere.