Analisi delle prestazioni di misure, relazioni e oggetti visivi
Se nel modello semantico sono presenti più tabelle, relazioni complesse, calcoli intricati, più elementi visivi o dati ridondanti, è possibile che le prestazioni del report siano scadenti. Le scarse prestazioni di un report comportano un'esperienza utente negativa.
Per ottimizzare le prestazioni, è necessario innanzitutto identificare l'origine del problema, ovvero scoprire gli elementi del report e del modello semantico che provocano la diminuzione delle prestazioni. Successivamente, è possibile intervenire per risolvere tali problemi e, di conseguenza, migliorare le prestazioni.
Identificazione dei colli di bottiglia delle prestazioni dei report
Per ottenere prestazioni ottimali nei report, è necessario creare un modello semantico efficiente dotato di query e misure rapide. Dopo aver stabilito delle buone basi, per migliorare ulteriormente il modello è possibile analizzare i piani di query e le dipendenze, quindi apportare modifiche per ottimizzare le prestazioni.
Per assicurarsi di usare il metodo più efficiente al fine di ottenere i risultati desiderati, si devono rivedere le misure e le query nel modello semantico. Il punto di partenza deve servire a identificare i colli di bottiglia presenti nel codice. Dopo aver identificato la query più lenta nel modello semantico, è possibile concentrarsi prima sul collo di bottiglia maggiore e stabilire un elenco di priorità per risolvere gli altri problemi.
Analisi delle prestazioni
Per scoprire come si comportano i singoli elementi del report durante l'interazione con gli utenti, è possibile usare l'analizzatore prestazioni in Power BI Desktop. Ad esempio, è possibile determinare il tempo necessario per l'aggiornamento di un particolare oggetto visivo quando viene avviato da un'interazione dell'utente. L'analizzatore prestazioni consente di identificare gli elementi che contribuiscono ai problemi di prestazioni, operazione utile durante la risoluzione dei problemi.
Prima di eseguire l'analizzatore prestazioni, per ottenere i risultati più accurati nell'analisi (test) assicurarsi di iniziare con la cache degli oggetti visivi e quella del motore dati pulite.
Cache degli oggetti visivi: quando si carica un oggetto visivo, non si può cancellare questa cache senza chiudere e riaprire Power BI Desktop. Per evitare qualsiasi memorizzazione nella cache durante l'esecuzione, è necessario iniziare l'analisi con una cache degli oggetti visivi pulita.
Per assicurarsi di avere una cache degli oggetti visivi pulita, aggiungere una pagina vuota al file Power BI Desktop (.pbix), quindi, con quella pagina selezionata, salvare e chiudere il file. Riaprire il file Power BI Desktop (.pbix) da analizzare. Il file si aprirà su una pagina vuota.
Cache del motore dati: quando si esegue una query, i risultati vengono memorizzati nella cache, quindi i risultati dell'analisi saranno fuorvianti. Prima di eseguire nuovamente l'oggetto visivo, è necessario cancellare la cache dei dati.
A tale scopo, riavviare Power BI Desktop oppure connettere DAX Studio al modello semantico, quindi chiamare la funzione Cancella cache.
Dopo aver svuotato le cache e aperto il file Power BI Desktop sulla pagina vuota, andare alla scheda Visualizzazione e selezionare l'opzione Analizzatore prestazioni.
Per iniziare il processo di analisi, selezionare Avvia registrazione, selezionare la pagina del report da analizzare e interagire con gli elementi del report da misurare. I risultati delle interazioni vengono visualizzati nel riquadro dell'analizzatore prestazioni durante il lavoro. Al termine, selezionare il pulsante Interrompi.
Per informazioni più dettagliate, consultare Usare l'analizzatore prestazioni per esaminare le prestazioni degli elementi del report.
Analisi dei risultati
I risultati del test delle prestazioni si possono esaminare nel riquadro Analizzatore prestazioni. Per esaminare le attività in ordine di durata, dalla più lunga alla più breve, fare clic con il pulsante destro del mouse sull'icona Ordina accanto all'intestazione di colonna Durata (ms), quindi selezionare Tempo totale in ordine discendente.
Le informazioni del registro per ogni oggetto visivo mostrano il tempo impiegato (durata) per completare le seguenti categorie di attività:
Query DAX: tempo impiegato dall'oggetto visivo per inviare la query, insieme al tempo impiegato da Analysis Services per restituire i risultati.
Visualizzazione oggetto visivo: tempo impiegato per il rendering dell'oggetto visivo sullo schermo, incluso il tempo necessario per recuperare le immagini Web o per la geocodifica.
Altro: tempo impiegato dall'oggetto visivo per preparare le query, attendere il completamento di altri oggetti visivi o eseguire altre attività di elaborazione in background. Se questa categoria visualizza una durata lunga, l'unico modo reale per ridurla è ottimizzare le query DAX per altri oggetti visivi o ridurre il numero di oggetti visivi nel report.
I risultati del test di analisi aiutano a comprendere il comportamento del modello semantico e a identificare gli elementi da ottimizzare. È possibile confrontare la durata di ciascun elemento nel report e identificare gli elementi con una durata lunga. È opportuno concentrarsi su tali elementi e capire perché impiegano un tempo così prolungato per caricarsi nella pagina del report.
Per analizzare le query in modo più dettagliato, usare DAX Studio, uno strumento gratuito e open source fornito da un altro servizio.
Risoluzione dei problemi e ottimizzazione delle prestazioni
I risultati dell'analisi consentono di individuare aree di miglioramento e opportunità di ottimizzazione delle prestazioni. Può essere necessario apportare miglioramenti agli oggetti visivi, alla query DAX o ad altri elementi del modello semantico. Le informazioni seguenti forniscono indicazioni su cosa cercare e sulle modifiche che è possibile apportare.
Oggetti visivi
Se si ritiene che gli oggetti visivi siano il collo di bottiglia che causa scarse prestazioni, è necessario trovare un modo per migliorare le prestazioni con un impatto minimo sull'esperienza utente.
Considerare il numero di oggetti visivi nella pagina del report: un numero minore di oggetti visivi comporta prestazioni migliori. Chiedersi se un oggetto visivo è davvero necessario e se aggiunge valore all'utente finale. Se la risposta è no, rimuovere tale oggetto. Anziché usare più oggetti visivi nella pagina, prendere in considerazione altri modi per fornire dettagli aggiuntivi, come pagine drill-through e descrizioni comandi nelle pagine dei report.
Esaminare il numero di campi in ogni oggetto visivo. Più oggetti visivi sono presenti nel report, maggiore è la probabilità che si verifichino problemi di prestazioni. Inoltre, più oggetti visivi sono presenti, più il report può apparire confuso e perdere di chiarezza. Il limite massimo per gli oggetti visivi è di 100 campi (misure o colonne), quindi il caricamento di un oggetto visivo con più di 100 campi sarà lento. È opportuno chiedersi se in un oggetto visivo sia necessario realmente un numero di dati così elevato. Probabilmente è possibile ridurre il numero di campi attualmente usato.
Query DAX
Esaminando i risultati nel riquadro Analizzatore prestazioni, è possibile vedere quanto tempo ha impiegato il motore di Power BI Desktop per valutare ciascuna query (in millisecondi). Un buon punto di partenza è osservare qualsiasi query DAX che impieghi più di 120 millisecondi. In questo esempio, si identifica una query specifica con una durata temporale elevata.
L'analizzatore prestazioni evidenzia i potenziali problemi, ma non indica come sia necessario operare per migliorarli. Può essere opportuno indagare ulteriormente per capire perché l'elaborazione di questa misura richieda un tempo così prolungato. Per analizzare le query in modo più dettagliato, si può usare DAX Studio.
Selezionare ad esempio Copia query per copiare la formula di calcolo negli Appunti, quindi incollarla in Dax Studio. A questo punto è possibile rivedere il passaggio di calcolo in modo più dettagliato. In questo esempio, si sta tentando di contare il numero totale di prodotti con quantità ordinate maggiori o uguali a cinque.
Count Customers =
CALCULATE (
DISTINCTCOUNT ( Order[ProductID] ),
FILTER ( Order, Order[OrderQty] >= 5 )
)
Dopo aver analizzato la query, si possono usare le proprie conoscenze e la propria esperienza per identificare dove si trovano i problemi di prestazioni. Si può anche provare a usare funzioni DAX diverse per vedere se consentono di migliorare le prestazioni. Nell'esempio seguente, la funzione FILTER è stata sostituita con la funzione KEEPFILTER. Quando il test è stato eseguito nuovamente nell'analizzatore prestazioni, la durata è risultata più breve per l'applicazione della funzione KEEPFILTER.
Count Customers =
CALCULATE (
DISTINCTCOUNT ( Order[ProductID] ),
KEEPFILTERS (Order[OrderQty] >= 5 )
)
In questo caso, è possibile sostituire la funzione FILTER con la funzione KEEPFILTER per ridurre significativamente il tempo di valutazione per la query. Quando si apporta questa modifica, per verificare se la durata è migliorata o meno, cancellare la cache dei dati e quindi eseguire nuovamente il processo dell'analizzatore prestazioni.
Modello semantico
Se la durata delle misure e degli oggetti visivi mostra valori bassi (in altre parole, se gli oggetti hanno una durata breve), gli oggetti non sono la causa dei problemi di prestazioni. Se invece la query DAX visualizza un valore di durata elevato, è probabile che una misura sia scritta male o che si sia verificato un problema con il modello semantico. Il problema potrebbe essere causato dalle relazioni, dalle colonne o dai metadati nel modello oppure dallo stato dell'opzione Data/ora automatica, come spiegato nella sezione seguente.
Relazioni
Per assicurarsi di aver stabilito quelle corrette, è necessario rivedere le relazioni tra le tabelle. Verificare che le proprietà di cardinalità della relazione siano configurate correttamente. Ad esempio, una colonna su un solo lato contenente valori univoci potrebbe essere configurata in modo errato come colonna su più lati. Il modo in cui la cardinalità influisce sulle prestazioni verrà descritto più avanti in questo modulo.
Colonne
È buona norma non importare colonne di dati di cui non si ha bisogno. Per evitare di eliminare colonne nell'editor di Power Query, provare a gestirle all'origine quando si caricano i dati in Power BI Desktop. Tuttavia, se è impossibile rimuovere le colonne ridondanti dalla query di origine o se i dati sono già stati importati nello stato di dati non elaborati, è sempre possibile usare l'editor di Power Query per esaminare ogni colonna. Chiedersi se si ha davvero bisogno di ogni colonna e provare a identificare il vantaggio che ciascuna colonna aggiunge al modello semantico. Se si rileva che una colonna non aggiunge alcun valore, rimuoverla dal modello semantico. Supponiamo, ad esempio, di avere una colonna ID con migliaia di righe univoche. Si sa già che questa particolare colonna non verrà usata in una relazione, quindi non verrà usata nemmeno in un report. Di conseguenza, considerare questa colonna come non necessaria e ammettere che si sta sprecando spazio nel modello semantico.
Quando si rimuove una colonna non necessaria, si riduce la dimensione del modello semantico che, a sua volta, si traduce in una dimensione minore del file e in tempi di aggiornamento più rapidi. Inoltre, poiché il modello semantico contiene solo dati rilevanti, le prestazioni complessive del report migliorano.
Per altre informazioni, consultare Tecniche di riduzione dei dati per la modellazione delle importazioni.
Metadati
I metadati rappresentano informazioni su altri dati. I metadati di Power BI contengono informazioni sul modello semantico, come il nome, il tipo di dati e il formato di ciascuna colonna, lo schema del database, la progettazione del report, la data dell'ultima modifica del file, la frequenza di aggiornamento dei dati e molto altro.
Quando si caricano dati in Power BI Desktop, è opportuno analizzare i metadati corrispondenti in modo da identificare eventuali incongruenze con il modello semantico e normalizzare i dati prima di iniziare a creare report. L'esecuzione di analisi sui metadati migliora le prestazioni del modello semantico perché, durante l'analisi, si identificano le colonne non necessarie, gli errori nei dati, i tipi di dati non corretti, il volume di dati caricati (i modelli semantici di grandi dimensioni, inclusi i dati transazionali o storici, impiegheranno più tempo per il caricamento) e molto altro.
Per esaminare le colonne, le righe e i valori dei dati non elaborati, si può usare l'editor di Power Query in Power BI Desktop. È quindi possibile usare gli strumenti disponibili, ad esempio quelli evidenziati nello screenshot seguente, per apportare le modifiche necessarie.
Le opzioni di Power Query includono:
Colonne non necessarie: valuta la necessità di ogni colonna. Se una o più colonne non vengono usate nel report e sono quindi inutili, è necessario rimuoverle usando l'opzione Rimuovi colonne nella scheda Home.
Righe non necessarie: controlla le prime righe nel modello semantico per vedere se sono vuote o se contengono dati non necessari nei report, In presenza di righe non necessarie, consente di rimuoverle usando l'opzione Rimuovi righe nella scheda Pagina iniziale.
Tipo di dati: valuta i tipi di dati delle colonne per garantire che siano tutti corretti. Se si identifica un tipo di dati non corretto, modificarlo selezionando prima la colonna, quindi l'opzione Tipo di dati nella scheda Trasforma e infine il tipo di dati corretto nell'elenco.
Nomi query: esamina i nomi delle query (tabelle) nel riquadro Query. In modo analogo ai nomi delle intestazioni di colonna, è necessario modificare i nomi delle query non comuni o inutili con nomi più significativi o con cui l'utente abbia più familiarità. Per rinominare una query, fare clic con il pulsante destro del mouse sulla query, selezionare Rinomina, modificare il nome come desiderato, quindi premere INVIO.
Dettagli colonna: l'editor di Power Query dispone delle seguenti tre opzioni di anteprima dei dati che si possono usare per analizzare i metadati associati alle colonne. Tali opzioni sono disponibili nella scheda Visualizza, come illustrato nello screenshot seguente.
Qualità colonna: determina la percentuale di elementi validi, con errori o vuoti nella colonna. Se la percentuale valida non è pari a 100, è necessario ricercarne il motivo, correggere gli errori e popolare i valori vuoti.
Distribuzione colonna: visualizza la frequenza e la distribuzione dei valori in ciascuna colonna. Approfondiremo questo aspetto più avanti nel modulo.
Profilo colonna: mostra un grafico delle statistiche e della distribuzione delle colonne.
Nota
Se si esamina un modello semantico di grandi dimensioni con più di 1.000 righe e si desidera analizzare l'intero modello semantico, è necessario modificare l'opzione predefinita nella parte inferiore della finestra. Selezionare Profilatura della colonna in base alle prime 1000 righe>Profilazione della colonna in base all'intero set di dati.
Altri metadati da considerare sono le informazioni sul modello semantico nel suo complesso, come la dimensione del file e la frequenza di aggiornamento dei dati. Tali metadati sono presenti nel file associato Power BI Desktop (.pbix). I dati caricati in Power BI Desktop vengono compressi e memorizzati sul disco dal motore di archiviazione VertiPaq. La dimensione del modello semantico ha un impatto diretto sulle sue prestazioni: un modello semantico di dimensioni minori usa meno risorse (memoria) e consente di aggiornare i dati, effettuare calcoli e di eseguire il rendering degli oggetti visivi nei report in modo più rapido.
Funzionalità di data/ora automatiche
Un altro elemento da considerare quando si ottimizzano le prestazioni è l'opzione Data/ora automatica in Power BI Desktop. Per impostazione predefinita, questa funzionalità è abilitata a livello globale, ovvero Power BI Desktop crea automaticamente una tabella calcolata nascosta per ogni colonna di data, a condizione che vengano soddisfatte determinate condizioni. Le nuove tabelle nascoste si aggiungono alle tabelle già presenti nel modello semantico.
L'opzione Data/ora automatica consente di lavorare con informazioni temporali durante il filtro, il raggruppamento e il drill-down dei periodi di tempo del calendario. Si consiglia di mantenere abilitata l'opzione Data/ora automatica solo quando si lavora con periodi di tempo del calendario e quando sono presenti requisiti di modello semplicistici in relazione al tempo.
Se l'origine dati definisce già una tabella delle dimensioni della data, tale tabella deve essere usata per definire in modo coerente l'ora nell'organizzazione e si deve disattivare l'opzione globale Data/ora automatica. Disabilitando questa opzione è possibile ridurre le dimensioni del modello semantico e il tempo di aggiornamento.
Si può abilitare/disabilitare l'opzione Data/ora automatica globalmente in modo che venga applicata a tutti i file Power BI Desktop oppure la si può abilitare/disabilitare per il file corrente in modo che venga applicata solo a un singolo file.
Per abilitare/disabilitare l'opzione Data/ora automatica, andare a File>Opzioni e impostazioni>Opzioni, quindi selezionare la pagina Globale o File corrente. In entrambe le pagine, selezionare Caricamento dati, quindi, nella sezione Time Intelligence selezionare oppure deselezionare la casella di controllo in base alle esigenze.
Per una panoramica e un'introduzione generale alla funzionalità Data/ora automatica, consultare Applicazione della data/ora automatica in Power BI Desktop.