Condividi tramite


Visualizzazione e interpretazione della diagnostica delle query in Power BI

Introduzione

Dopo aver registrato la diagnostica che si vuole usare, il passaggio successivo è in grado di capire cosa dicono.

È utile avere una buona comprensione del significato di ogni colonna nello schema di diagnostica delle query, che non verrà ripetuto in questa breve esercitazione. C'è un resoconto completo di ciò qui.

In generale, quando si creano visualizzazioni, è preferibile usare la tabella dettagliata completa. Poiché, indipendentemente dal numero di righe, probabilmente stai esaminando una rappresentazione di come il tempo impiegato in risorse diverse si somma, o quale fosse il risultato della query nativa.

Come accennato nell'articolo sulla registrazione della diagnostica, sto lavorando con le tracce OData e SQL per la stessa tabella (o quasi) , ovvero la tabella Customers di Northwind. In particolare, mi concentrerò sulla domanda comune dei nostri clienti e su uno dei set di tracce più facili da interpretare: aggiornamento completo del modello di dati.

Creazione delle visualizzazioni

Quando si esaminano le tracce, è possibile valutarle in molti modi. In questo articolo ci concentreremo su una doppia visualizzazione divisa, una per mostrare i dettagli di cui si è interessati e l'altra per esaminare facilmente i contributi temporali di vari fattori. Per la prima visualizzazione viene usata una tabella. È possibile selezionare i campi desiderati, ma quelli consigliati per un aspetto semplice e generale sono i seguenti:

Per la seconda visualizzazione, una scelta consiste nell'usare un grafico a colonne sovrapposte. Nel parametro 'Axis', è possibile usare 'Id' o 'Step'. Se si sta esaminando l'aggiornamento, poiché non ha nulla a che fare con i passaggi nell'Editor stesso, è probabile che si voglia semplicemente esaminare "Id". Per il parametro 'Legend' è necessario impostare 'Category' o 'Operation' (a seconda della granularità desiderata). Per il parametro "Valore", impostare "Durata esclusiva" (e assicurarsi che non sia il %, in modo da ottenere il valore grezzo della durata). Infine, per la descrizione comando, impostare l'ora di inizio più presto.

Dopo aver compilato la visualizzazione, assicurati di ordinare in base al Orario di inizio più recente in modo da poter vedere l'ordine in cui si verificano le cose.

Visualizzazione dei dettagli e dell'aggregazione temporale.

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

Interpretazione delle visualizzazioni

Come accennato in precedenza, esistono molte domande a cui è possibile rispondere con la diagnostica delle query, ma le due più comuni chiedono in che modo viene impiegato il tempo e quale sia la query inviata all'origine.

Chiedere come viene speso il tempo è facile e sarà simile per la maggior parte dei connettori. Un avvertimento riguardante la diagnostica delle query, come indicato altrove, è che si possono osservare capacità notevolmente diverse a seconda del connettore. Ad esempio, molti connettori basati su ODBC non avranno una registrazione accurata di quale query viene inviata al sistema back-end effettivo, perché Power Query vede solo ciò che invia al driver ODBC.

Se si vuole vedere come viene impiegato il tempo, è sufficiente esaminare le visualizzazioni create in precedenza.

Ora, poiché i valori di ora per le query di esempio in uso qui sono così piccoli, se si vuole usare il modo in cui Power BI segnala l'ora è preferibile se si converte la colonna Durata esclusiva in "Secondi" nell'editor di Power Query. Una volta eseguita questa conversione, è possibile esaminare il grafico e ottenere un'idea decente del punto in cui viene trascorso il tempo.

Per i risultati OData, nell'immagine viene visualizzato che la maggior parte del tempo è stata 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.

Riepilogo della diagnostica della query OData Northwind.

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

Riepilogo della diagnostica della query OData Northwind con tracce SQL.

Se si seleziona la tabella Origine dati, ad esempio con la diagnostica ODATA, si può vedere che la prima valutazione (2.3 in questa immagine) genera query di metadati, mentre la seconda valutazione recupera effettivamente i dati di nostro interesse. Poiché in questo caso vengono recuperate piccole quantità di dati, il pull dei dati restituiti richiede una piccola quantità di tempo (meno di un decimo di secondo per l'intera seconda valutazione, con meno di un ventesimo di secondo per il recupero dei dati stesso), ma questo non sarà vero in tutti i casi.

Come sopra, è possibile selezionare la categoria 'Origine dati' nella legenda per visualizzare le query generate.

Scavare nei dati

Esaminare i percorsi

Quando si esamina questo aspetto, se sembra che il tempo impiegato sia strano, ad esempio nella query OData si noterà che è presente una query 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 della sorgente dati è associata a un'operazione che richiede solo 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 richiede quasi il 75% della durata esclusiva complessiva. Se si attiva il Percorso, si scopre che quest'ultimo è effettivamente un figlio del primo. Ciò significa che la prima query ha aggiunto autonomamente un piccolo intervallo di tempo, mentre il recupero effettivo dei dati è monitorato dalla query "interna".

Si tratta di valori estremi, ma si trovano entro i limiti di ciò che potrebbe essere visto.