Esaminare le prestazioni di misure, relazioni e oggetti visivi

Completato

Se il modello semantico include più tabelle, relazioni complesse, calcoli complessi, più oggetti visivi o dati ridondanti, esiste un potenziale per prestazioni di report scarse. Un report con prestazioni scarse comporta un'esperienza utente negativa.

Screenshot dei fattori che compromettono le prestazioni del report.

Per ottimizzare le prestazioni, è prima necessario identificare dove proviene il problema; in altre parole, scoprire quali elementi del report e del modello semantico causano i problemi di prestazioni. Sarà quindi possibile intervenire per risolvere tali problemi e di conseguenza migliorare le prestazioni.

Identificare i colli di bottiglia in termini di prestazioni del report

Per ottenere prestazioni ottimali nei report, è necessario creare un modello semantico efficiente con query e misure in esecuzione rapida. Se il modello ha una base solida, è possibile migliorarlo ulteriormente analizzando i piani di query e le dipendenze e quindi apportando le modifiche necessarie per ottimizzare le prestazioni.

È consigliabile esaminare le misure e le query nel modello semantico per assicurarsi di usare il modo più efficiente per ottenere i risultati desiderati. Prima di tutto è necessario identificare i colli di bottiglia presenti nel codice. Quando si identifica la query più lenta nel modello semantico, è possibile concentrarsi prima sul collo di bottiglia più grande e stabilire un elenco di priorità per risolvere gli altri problemi.

Analizzare le prestazioni

È possibile usare l'analizzatore prestazioni in Power BI Desktop per scoprire come ogni elemento del report viene eseguito quando gli utenti interagiscono con loro. È ad esempio possibile stabilire quanto tempo è necessario per l'aggiornamento di un determinato oggetto visivo quando viene avviato da un'interazione dell'utente. L'analizzatore prestazioni consentirà di identificare gli elementi che contribuiscono ai problemi di prestazioni, semplificando la risoluzione dei problemi.

Prima di eseguire l'analizzatore prestazioni, per essere certi di ottenere i risultati più accurati possibile durante l'analisi (test), assicurarsi di iniziare con una cache di oggetti visivi pulita e una cache del motore dati pulita.

  • Cache di oggetti visivi: quando si carica un oggetto visivo, non è possibile cancellare il contenuto della cache di questo oggetto visivo senza chiudere e riaprire Power BI Desktop. Per evitare di memorizzare qualsiasi elemento nella cache, è necessario iniziare l'analisi con una cache di oggetti visivi pulita.

    Per assicurarsi di avere una cache di oggetti visivi pulita, aggiungere una pagina vuota al file di Power BI Desktop (con estensione pbix) e quindi, con tale pagina selezionata, salvare e chiudere il file. Riaprire il file di Power BI Desktop (con estensione pbix) che si vuole analizzare. Verrà aperto sulla pagina vuota.

  • Cache del motore dati: quando viene eseguita una query, i risultati vengono memorizzati nella cache, quindi i risultati dell'analisi saranno fuorvianti. Prima di eseguire nuovamente l'oggetto visivo, è necessario cancellare il contenuto della cache dei dati.

    Per cancellare la cache dei dati, è possibile riavviare Power BI Desktop o connettere DAX Studio al modello semantico e quindi chiamare Cancella cache.

Dopo aver cancellato il contenuto delle cache e aver aperto il file di Power BI Desktop alla pagina vuota, passare alla scheda Visualizza e selezionare l'opzione Analizzatore prestazioni.

Per iniziare il processo di analisi, selezionare Avvia registrazione, selezionare la pagina del report che si vuole analizzare e interagire con gli elementi del report da misurare. I risultati delle interazioni vengono visualizzati nel riquadro Analizzatore prestazioni in tempo reale. Al termine, selezionare il pulsante Arresta.

Screenshot della schermata iniziale di Analizzatore prestazioni.

Per informazioni più dettagliate, vedere Usare l'analizzatore prestazioni per esaminare le prestazioni degli elementi del report.

Esaminare i risultati

È possibile esaminare i risultati del test delle prestazioni 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) e quindi selezionare Tempo totale in ordine Decrescente.

Screenshot che mostra come ordinare i risultati in Analizzatore.

Le informazioni del log per ogni oggetto visivo indicano il tempo impiegato (durata) per completare le categorie di attività seguenti:

  • Query DAX: tempo impiegato dall'oggetto visivo per inviare la query più il tempo impiegato da Analysis Services per restituire i risultati.

  • Visualizzazione oggetti visivi: 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 ha una durata prolungata, l'unico vero modo per ridurla consiste nell'ottimizzare le query DAX per gli altri oggetti visivi o nel ridurre il numero di oggetti visivi nel report.

Screenshot delle categorie nei risultati di Analizzatore prestazioni.

I risultati del test di analisi consentono di comprendere il comportamento del modello semantico e identificare gli elementi necessari per ottimizzare. È possibile confrontare la durata di ogni elemento nel report e identificare gli elementi che hanno una durata prolungata. È consigliabile concentrarsi su tali elementi ed esaminare i motivi di un caricamento così lento nella pagina del report.

Per analizzare le query in modo più dettagliato, è possibile usare DAX Studio, uno strumento open source gratuito fornito da un altro servizio.

Risolvere i problemi e ottimizzare le prestazioni

I risultati dell'analisi identificheranno le aree da migliorare e le opportunità di ottimizzazione delle prestazioni. Potrebbe essere necessario apportare miglioramenti agli oggetti visivi, alla query DAX o ad altri elementi nel modello semantico. Le informazioni seguenti indicano che cosa cercare e illustrano le modifiche che è possibile apportare.

Oggetti visivi

Se si identificano gli oggetti visivi come colli di bottiglia che causano una riduzione delle prestazioni, si deve cercare di migliorare le prestazioni con un impatto minimo sull'esperienza utente.

Considerare il numero di oggetti visivi nella pagina del report. Un numero inferiore di oggetti visivi consente prestazioni migliori. Stabilire se un oggetto visivo è effettivamente necessario e se aggiunge valore per l'utente finale. Se non è così, è consigliabile rimuovere l'oggetto visivo. Invece di usare più oggetti visivi nella pagina, prendere in considerazione altri modi per aggiungere dettagli, ad esempio pagine drill-through e descrizioni comando per la pagina del report.

Esaminare il numero di campi in ogni oggetto visivo. Maggiore è il numero di oggetti visivi nel report, maggiore è la probabilità che si verifichino problemi di prestazioni. Inoltre, con un numero eccessivo di oggetti visivi, il report può apparire troppo pieno e risultare meno chiaro. Il limite massimo per gli oggetti visivi è 100 campi (misure o colonne), quindi un oggetto visivo con più di 100 campi sarà lento da caricare. È importante chiedersi se tutti questi dati in un oggetto visivo sono effettivamente necessari. Si potrebbe concludere che è possibile ridurre il numero attuale dei campi.

Query DAX

Quando si esaminano i risultati nel riquadro Analizzatore prestazioni, è possibile verificare quanto tempo ha impiegato il motore di Power BI Desktop per valutare ogni query (in millisecondi). Un buon punto di partenza sono le query DAX che richiedono più di 120 millisecondi. In questo esempio si identifica una particolare query con una durata prolungata.

Screenshot di un esempio di tempo di durata elevato in Analizzatore prestazioni.

L'analizzatore prestazioni evidenzia i potenziali problemi, ma non indica che cosa fare per risolverli. Potrebbe essere necessario eseguire ulteriori indagini sui motivi della lentezza dell'elaborazione di questa misura. È possibile usare DAX Studio per analizzare le query in modo più dettagliato.

Selezionare ad esempio Copia query per copiare la formula di calcolo negli Appunti, quindi incollarla in DAX Studio. È quindi possibile esaminare il passaggio di calcolo in modo più dettagliato. In questo esempio si vuole contare il numero totale di prodotti per cui sono stati effettuati cinque o più ordini.

Count Customers =
CALCULATE (
    DISTINCTCOUNT ( Order[ProductID] ),
    FILTER ( Order, Order[OrderQty] >= 5 )
)

Dopo aver analizzato la query, identificare i problemi di prestazioni sulla base delle proprie conoscenze ed esperienze. È anche possibile provare a usare funzioni DAX diverse per vedere se le prestazioni migliorano. Nell'esempio seguente la funzione FILTER è stata sostituita con la funzione KEEPFILTER. Quando il test è stato eseguito di nuovo nell'analizzatore prestazioni, la durata è stata ridotta grazie all'uso 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 necessario per valutare questa query. Quando si apporta questa modifica, per controllare se la durata è stata ridotta, cancellare la cache dei dati e quindi eseguire di nuovo il processo dell'analizzatore prestazioni.

Screenshot di un esempio di durata ridotta in Analizzatore prestazioni.

Modello semantico

Se misure e oggetti visivi presentano valori di durata bassi (in altre parole, hanno una durata breve), non sono la causa dei problemi di prestazioni. Se invece la query DAX visualizza un valore di durata elevata, è probabile che una misura venga 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 del modello oppure dallo stato dell'opzione Data/ora automatica, come illustrato nella sezione seguente.

Relazioni

È consigliabile esaminare le relazioni tra le tabelle per assicurarsi di avere stabilito le relazioni corrette. Controllare che le proprietà di cardinalità delle relazioni siano configurate correttamente. Ad esempio, una colonna sul lato uno, contenente valori univoci, potrebbe essere erroneamente configurata come colonna sul lato molti. Più avanti in questo modulo verrà illustrato come la cardinalità influisce sulle prestazioni.

Colonne

È consigliabile non importare le colonne di dati non necessarie. Per evitare di eliminare colonne nell'editor di Power Query, è meglio provare a gestirle quando si caricano i dati in Power BI Desktop. Se tuttavia non è possibile rimuovere le colonne ridondanti dalla query di origine o se i dati sono già stati importati nello stato non elaborato, è sempre possibile usare l'editor di Power Query per esaminare ogni colonna. Chiedere se è veramente necessaria ogni colonna e provare a identificare il vantaggio che ognuno aggiunge al modello semantico. Se si trova che una colonna non aggiunge alcun valore, è necessario rimuoverla dal modello semantico. Si supponga, ad esempio, di avere una colonna ID con migliaia di righe univoche. Si è certi che questa particolare colonna non verrà usata in una relazione, perciò non verrà visualizzata in un report. Pertanto, è consigliabile considerare questa colonna come non necessaria e ammettere che sta sprecare spazio nel modello semantico.

Quando si rimuove una colonna non necessaria, si ridurranno le dimensioni del modello semantico che, a sua volta, comportano dimensioni di file inferiori e tempi di aggiornamento più rapidi. Inoltre, poiché il modello semantico contiene solo dati rilevanti, le prestazioni complessive del report verranno migliorate.

Per altre informazioni, vedere Tecniche di riduzione dei dati per i modelli di importazione.

Metadati

I metadati sono informazioni sugli altri dati. I metadati di Power BI contengono informazioni sul modello semantico, ad esempio il nome, il tipo di dati e il formato di ognuna delle colonne, lo schema del database, la progettazione del report, l'ultima modifica del file, la frequenza di aggiornamento dei dati e molto altro ancora.

Quando si caricano dati in Power BI Desktop, è consigliabile analizzare i metadati corrispondenti in modo da identificare eventuali incoerenze con il modello semantico e normalizzare i dati prima di iniziare a compilare report. L'esecuzione di analisi sui metadati migliorerà le prestazioni del modello semantico perché, durante l'analisi dei metadati, verranno identificate colonne non necessarie, errori all'interno dei dati, tipi di dati non corretti, il volume dei dati caricati (modelli semantici di grandi dimensioni, inclusi i dati transazionali o cronologici, richiederà più tempo per il caricamento) e molto altro ancora.

È possibile usare l'editor di Power Query in Power BI Desktop per esaminare le colonne, le righe e i valori dei dati non elaborati. È quindi possibile usare gli strumenti disponibili, ad esempio quelli evidenziati nello screenshot seguente, per apportare le modifiche necessarie.

Screenshot delle opzioni della scheda Home dell'editor di query.

Le opzioni di Power Query includono:

  • Unnecessary columns (Colonne non necessarie): valuta la necessità di ogni colonna. Se una o più colonne non verranno usate nel report e quindi non sono necessarie, è consigliabile rimuoverle usando l'opzione Rimuovi colonne nella scheda Home.

  • Righe non necessarie : controlla le prime righe nel modello semantico per verificare se sono vuote o se contengono dati che non sono necessari nei report; in tal caso, rimuove tali righe usando l'opzione Rimuovi righe nella scheda Home .

  • Tipo di dati: valuta i tipi di dati delle colonne per verificarne la correttezza. Se si identifica un tipo di dati non corretto, modificarlo selezionando la colonna, selezionando Tipo di dati nella scheda Trasforma e quindi selezionando il tipo di dati corretto nell'elenco.

  • Query names (Nomi di query): esamina i nomi di query (tabella) nel riquadro Query. Proprio come è stato fatto per i nomi di intestazione di colonna, è consigliabile sostituire i nomi di query non comuni o non utili con nomi più comprensibili o con nomi con i quali ha familiarità l'utente. Per rinominare una query, fare clic con il pulsante destro del mouse su di essa, scegliere Rinomina, modificare il nome nel modo desiderato e quindi premere INVIO.

  • Dettagli colonna: l'editor di Power Query include le tre opzioni seguenti di anteprima dei dati, che è possibile usare per analizzare i metadati associati alle colonne. È possibile trovare queste opzioni nella scheda Visualizza, come illustrato nello screenshot seguente.

    • Colonna qualità: determina la percentuale di elementi della colonna validi, con errori o vuoti. Se la percentuale valida non è 100, è consigliabile ricercarne il motivo, correggere gli errori e popolare i valori vuoti.

    • Distribuzione delle colonne: visualizza la frequenza e la distribuzione dei valori in ognuna delle colonne. Questo aspetto verrà esaminato più avanti in questo modulo.

    • Profilo di colonna : mostra il grafico delle statistiche delle colonne e un istogramma di distribuzione.

Screenshot delle opzioni del profilo di colonna.

Nota

Se si esamina un modello semantico di grandi dimensioni con più di 1.000 righe e si vuole analizzare l'intero modello semantico, è necessario modificare l'opzione predefinita nella parte inferiore della finestra. Selezionare Profilatura colonne in base alla profilatura delle prime 1000 righe>In base all'intero set di dati.

Screenshot delle righe di profilatura della colonna.

Altri metadati da considerare sono le informazioni relative al modello semantico nel suo complesso, ad esempio le dimensioni del file e le frequenze di aggiornamento dei dati. È possibile trovare questi metadati nel file di Power BI Desktop (con estensione pbix) associato. I dati caricati in Power BI Desktop vengono compressi e archiviati sul disco dal motore di archiviazione VertiPaq. Le dimensioni del modello semantico hanno un impatto diretto sulle prestazioni; un modello semantico di dimensioni inferiori usa meno risorse (memoria) e consente di ottenere un aggiornamento dei dati, calcoli e rendering più rapidi degli oggetti visivi nei report.

Funzionalità Data/ora automatica

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, quindi Power BI Desktop crea automaticamente una tabella calcolata nascosta per ogni colonna di data, purché vengano soddisfatte determinate condizioni. Le nuove tabelle nascoste si aggiungono alle tabelle già presenti nel modello semantico.

L'opzione Data/ora automatica consente di usare la funzionalità di Business Intelligence per le gerarchie temporali durante l'applicazione di filtri, il raggruppamento e il drill-down di periodi di tempo di calendario. È consigliabile lasciare abilitata l'opzione Data/ora automatica solo quando si usano periodi di tempo di calendario e quando i requisiti del modello in termini temporali non sono eccessivamente complessi.

Se l'origine dati definisce già una tabella delle dimensioni delle date, tale tabella deve essere usata per definire in modo coerente l'aspetto temporale all'interno dell'organizzazione ed è consigliabile disabilitare l'opzione globale Data/ora automatica. La disabilitazione di questa opzione può ridurre le dimensioni del modello semantico e ridurre il tempo di aggiornamento.

È possibile abilitare/disabilitare questa opzione Data/ora automatica a livello globale per applicarla a tutti i file di Power BI Desktop oppure è possibile abilitare/disabilitare l'opzione per il file corrente per applicarla solo a un singolo file.

Per abilitare/disabilitare questa opzione Data/ora automatica , passare a Opzioni file>e impostazioni>Opzioni e quindi selezionare la pagina File globale o Corrente . In una delle due pagine selezionare Caricamento dati e quindi nella sezione Funzionalità di Business Intelligence per le gerarchie temporali selezionare o deselezionare la casella di controllo, in base alle esigenze.

Screenshot che mostra come configurare l'ora della data automatica.

Per una panoramica e un'introduzione generale alla funzionalità Data/ora automatica, vedere Applicare la data/ora automatica in Power BI Desktop.