Usare Analizzatore prestazioni per diagnosticare i problemi

Completato

Prima di poter risolvere un problema di prestazioni, è necessario trovarlo. L'analizzatore delle prestazioni è lo strumento di diagnostica principale integrato in Power BI per identificare cosa è lento in un report e perché. Misura per quanto tempo ogni oggetto visivo impiega per caricare e suddivide il tempo in categorie in modo da poter individuare esattamente dove si trova il collo di bottiglia.

Aprire Analizzatore prestazioni

In Power BI Desktop selezionare la barra multifunzione Optimize e quindi selezionare Performance analyzer. Il riquadro dell'analizzatore prestazioni si apre sul lato destro del canvas del report. Quando il riquadro è visibile, si è pronti per avviare la registrazione.

Screenshot della barra multifunzione Ottimizza in Power BI Desktop con l'analizzatore prestazioni evidenziato.

Note

L'analizzatore delle prestazioni è disponibile anche nella servizio Power BI. Aprire un report in modalità di modifica, selezionare il menu Visualizza e quindi selezionare Analizzatore prestazioni. Le suddivisioni temporali e le funzionalità di copia delle query funzionano allo stesso modo.

Registrare e misurare le prestazioni

Per acquisire i dati di intervallo, seguire questa procedura:

  1. Selezionare Avvia registrazione nel riquadro Analizzatore prestazioni.
  2. Interagire con il report: aggiornare gli oggetti visivi, regolare gli slicer o navigare tra le pagine.
  3. Osservare i risultati di tempo visualizzati in tempo reale per ogni visuale.
  4. Selezionare Arresta quando sono stati acquisiti dati sufficienti.

Ogni interazione, ad esempio la modifica di un filtro dei dati o l'aggiornamento di una pagina, crea una sezione nel riquadro. In ogni sezione sono visualizzati i singoli oggetti visivi e i relativi tempi di caricamento.

Screenshot del riquadro dello strumento di Analisi delle prestazioni che mostra i risultati di temporizzazione.

Tip

Cancellare la cache visiva prima di misurare per ottenere risultati accurati. In Power BI Desktop questa opzione è disponibile nel riquadro Analizzatore prestazioni. I dati memorizzati nella cache possono mascherare le prestazioni effettive delle query, quindi la cancellazione garantisce la misurazione del tempo di esecuzione reale.

È anche possibile misurare un singolo oggetto visivo. Quando l'analizzatore prestazioni sta registrando, selezionare l'icona Analizza questo oggetto visivo nell'angolo superiore destro di qualsiasi oggetto visivo per acquisire e aggiornare singolarmente i dati sulle prestazioni.

Screenshot del riquadro Analizzatore prestazioni dopo l'analisi di un singolo oggetto visivo.

Informazioni sulle metriche delle tempistiche

L'analizzatore delle prestazioni suddivide il tempo di caricamento di ogni oggetto visivo in diverse categorie:

Metrica Cosa misura
Query DAX Tempo necessario affinché l'oggetto visivo invii una query al modello semantico e riceva i risultati. Questo è il collo di bottiglia più comune.
Visualizzazione dell'oggetto visivo Tempo necessario per il rendering dell'oggetto visivo sullo schermo, incluso il recupero di immagini Web o il processo di geocodifica.
Direct Query Tempo per le query inviate a un'origine dati esterna quando si usa la modalità di archiviazione DirectQuery.
Altro Tempo necessario per l'elaborazione in background, inclusa l'attesa per il completamento di oggetti visivi, la preparazione delle query e il sovraccarico della rete.

Il valore Duration (ms) rappresenta il tempo totale dall'inizio alla fine per ogni operazione. Poiché la maggior parte delle operazioni viene eseguita in sequenza su un singolo thread dell'interfaccia utente, le durate segnalate possono includere il tempo impiegato in attesa in una coda mentre terminano altri oggetti visivi.

Quando si esegue la diagnosi di un report lento, concentrarsi innanzitutto sulla causa principale. Se il tempo di query DAX è dominante, il problema risiede nel modello o nella misura. Se il tempo di visualizzazione dell'oggetto visivo è elevato, l'oggetto visivo stesso esegue il rendering di troppi dati. Se il tempo per DirectQuery è elevato, il problema potrebbe risiedere nell'origine dati esterna o nel query folding.

Esportare e analizzare query DAX

Una delle funzionalità più utili di Analizzatore prestazioni è la possibilità di estrarre la query DAX esatta inviata da un oggetto visivo al modello semantico. In questo modo è possibile analizzare il motivo per cui una query specifica è lenta.

Per esportare una query DAX:

  1. Espandere la voce di un oggetto visivo nel riquadro dell'analizzatore prestazioni.
  2. Selezionare Esegui nella visualizzazione query DAX per aprire automaticamente la query in una nuova scheda oppure selezionare Copia query per copiarla nella clipboard.
  3. Nella visualizzazione della query DAX, esegui la query ed esamina i risultati.

La griglia dei risultati mostra i dati usati dalla visualizzazione. È possibile esaminare la struttura di query, identificare operazioni costose e ottimizzazioni dei test direttamente nella visualizzazione query DAX.

Screenshot di una query nella vista di query DAX, dopo essere stata aperta dall'analizzatore prestazioni.

La query DAX generata da un oggetto visivo è spesso più dettagliata rispetto a una query scritta a mano. Include VAR aggiuntivi, wrapper TOPN e riferimenti a colonne che supportano il cambio del tipo di oggetto visivo. Se Copilot è disponibile, può aiutare a semplificare la struttura della query nella vista della query DAX. Provare un prompt come "Rimuovi i VAR e TOPN e semplifica questa query DAX".

Note

Nel servizio Power BI, il pulsante Esegui nella visualizzazione delle query DAX non è disponibile. Copiare invece la query, selezionare Apri modello di dati per aprire l'esperienza di modellazione Web e quindi passare alla visualizzazione query DAX per incollarla ed eseguirla. Le query nel Web non vengono salvate dopo la chiusura del browser.

Usare DAX Studio per una diagnostica più approfondita

DAX Studio è uno strumento open source gratuito che si connette al modello semantico locale o a un modello semantico pubblicato tramite un endpoint XMLA. DAX Studio offre funzionalità oltre alla visualizzazione query DAX predefinita:

  • Tempi del server: separa l'esecuzione delle query nel motore di formule (FE) e nel motore di archiviazione (SE), mostrando esattamente dove il motore dedica i propri sforzi.
  • Piano di query: visualizza il piano di query logico e fisico, che consente di identificare operazioni inefficienti in misure complesse.
  • Metriche del modello: analizza le dimensioni delle tabelle e delle colonne, la cardinalità e le statistiche di compressione, in modo da poter identificare i collaboratori più grandi alle dimensioni del modello.

DAX Studio è particolarmente utile quando si necessita di diagnostica a livello di motore che l'Analizzatore delle prestazioni e la visualizzazione delle query DAX non mostrano, o quando non si ha accesso a Copilot per semplificare le query. Il flusso di lavoro è lo stesso: copiare una query DAX da Analizzatore prestazioni, incollarla in DAX Studio e usare i tempi del server e i piani di query per comprendere dove il motore impiega il tempo.

Interpretare i risultati in modo efficace

I numeri non elaborati da soli non raccontano la storia completa. Una diagnosi efficace richiede il confronto dei risultati nel contesto:

  • Confrontare i tempi relativi tra gli oggetti visivi. Se un oggetto visivo richiede 5.000 ms e tutti gli altri richiedono meno di 200 ms, tale oggetto visivo è l'area messa a fuoco.
  • Identificare la categoria del punto critico. Un oggetto visivo che impiega 4.800 ms per la query DAX e 200 ms per la visualizzazione dell'oggetto visivo presenta un problema a livello di modello di dati o di misura, non un problema di rendering.
  • Eseguire il test con dati rappresentativi. Le misurazioni delle prestazioni in un set di dati di sviluppo con 1.000 righe non riflettono accuratamente le prestazioni di produzione in un set di dati con 10 milioni di righe.
  • Ripetere le misurazioni. Una singola misura può essere influenzata dalla memorizzazione nella cache, dalla variabilità di rete o dai processi in background. Eseguire la misurazione più volte e osservare il modello.

Si consideri questo esempio: una pagina del report ha cinque oggetti visivi. Dopo aver cancellato la cache e aver aggiornato tutti gli oggetti visivi, i risultati hanno un aspetto simile al seguente:

Oggetto visivo Query DAX (ms) Visualizzazione visiva (ms) Totale (ms)
Ricavi per area (grafico a barre) 120 80 200
Tendenza mensile (grafico a linee) 150 90 240
Dettagli prodotto (tabella) 4,500 300 4,800
Scheda KPI 50 30 80
Clienti principali (tabella) 180 110 290

La tabella dei dettagli del prodotto è chiaramente l'anomalia. Il tempo di query DAX di 4.500 ms indica una misura costosa o una richiesta di dati eccessiva. Il passaggio successivo consiste nel copiare la query, analizzarla nella visualizzazione query DAX e determinare se il problema è un calcolo complesso, un modello di filtro inefficiente o una quantità eccessiva di dati restituiti.

Procedure consigliate per la misurazione delle prestazioni

Seguire queste linee guida per ottenere risultati affidabili e interattivi da Analizzatore prestazioni:

  • Cancellare la cache visiva prima di ogni test. I risultati memorizzati nella cache mascherano il tempo di esecuzione della query reale.
  • Isolare le variabili. Cambiare una cosa alla volta, quindi misurare di nuovo.
  • Testare scenari realistici. Usare dati delle dimensioni di produzione e selezioni di filtri tipiche.
  • Linee di base dei documenti. Registrare i risultati di intervallo prima e dopo le modifiche in modo da poter quantificare il miglioramento.
  • Concentrarsi sugli elementi visivi che influiscono sull'utente. Assegnare priorità agli oggetti visivi nella pagina di destinazione predefinita e nelle pagine del report di uso comune.

L'analizzatore delle prestazioni è il punto di partenza nel flusso di lavoro per la risoluzione dei problemi. Indica cosa è lento e quale categoria (DAX, visualizzazione, DirectQuery) contribuisce di più. Il passaggio successivo consiste nel risolvere il problema: a partire dall'ottimizzazione DAX.