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. Qui c'è una scrittura completa.

In generale, quando si creano visualizzazioni, è preferibile usare la tabella dettagliata completa. Poiché indipendentemente dal numero di righe, ciò che si sta probabilmente esaminando è una rappresentazione del tempo impiegato in risorse diverse o dell'emissione 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 istogramma in pila. Nel parametro 'Axis', è possibile usare 'Id' o 'Step'. Se si sta esaminando l'aggiornamento, perché 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 "Valore", impostare "Durata esclusiva" e assicurarsi che non sia %, in modo da ottenere il valore di durata non elaborato. Infine, per la descrizione comando, impostare l'ora di inizio meno recente.

Dopo aver compilato la visualizzazione, assicurarsi di ordinare in base all'ora di inizio meno recente in modo che sia possibile visualizzare 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 che è possibile provare a rispondere con la diagnostica delle query, ma i due che si vedono più spesso chiedono come viene impiegato il tempo e si chiede qual è la query inviata all'origine.

Chiedere come è facile il tempo impiegato e sarà simile per la maggior parte dei connettori. Un avviso con la diagnostica delle query, come indicato altrove, è che si noteranno funzionalità drasticamente 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 diagnostica 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 diagnostica query OData Northwind con tracce SQL.

Se si seleziona la tabella Origine dati, ad esempio con la diagnostica ODATA, è possibile vedere la prima valutazione (2.3 in questa immagine) genera query di metadati, con la seconda valutazione effettivamente recuperando i dati di cui ci si occupa. 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 origine dati è associata a un'operazione che richiede solo il 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 origine dati è associata a un'operazione che richiede 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 ha fondamentalmente aggiunto una piccola quantità di tempo autonomamente, con 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.