Idee di materializzazione per cache di dati in DAX Studio

Idee di materializzazione per cache di dati in DAX Studio

Questa esercitazione illustrerà la materializzazione per le cache di dati in DAX Studio. Questo post mostrerà come influisce sul tuo calcolo durante la generazione di risultati con la tua query. Imparerai quale materializzazione è migliore per massimizzare le prestazioni di DAX.

Esistono due idee di materializzazione: materializzazione precoce e materializzazione tardiva .

Sommario

Prima materializzazione

La materializzazione anticipata si verifica quando il numero di righe materializzate è maggiore del numero di righe necessarie per l'output.

Se il tuo output è una tabella per anno solare e hai cinque anni di dati, non è necessario portare molte righe materializzate. La best practice consiste nell'avere un numero di righe materializzate uguale al numero di righe necessarie. Tuttavia, non è sempre così perché dipende dalla complessità del tuo DAX e dalla configurazione dei dati.

Ricorda sempre che i dati sono costituiti da colonne. Quindi, quando il motore delle formule deve lavorare su una tabella, le colonne vengono riunite in un formato tabella, che è la materializzazione. In un'idea di materializzazione iniziale, il motore di archiviazione invia la cache dei dati al motore delle formule. Il motore delle formule lavora quindi su quella cache ed esegue processi complessi.

La materializzazione anticipata può essere causata dalla presenza di join complessi o da una relazione molti-a-molti nei modelli di dati. Può anche essere causato dalla presenza di filtri o iteratori complessi.

Non è sbagliato avere misure complesse; devi solo configurarli correttamente per sfruttare il più possibile il motore di archiviazione.

Materializzazione tardiva

La materializzazione tardiva è quando il numero di righe materializzate è uguale o vicino al numero di righe necessarie per l'output.

Il motore di archiviazione fa quasi tutto il lavoro senza lasciare nulla al motore di formula. Questo rende l'intero calcolo più veloce.

Questi sono esempi di query di materializzazione precoce e tardiva:

Idee di materializzazione per cache di dati in DAX Studio

Prima di eseguire queste query, assicurati di svuotare la cache. Questo farà sì che le tue query vengano eseguite sulla cache a freddo. Se esegui DAX senza svuotare la cache, otterrai questo risultato:

Idee di materializzazione per cache di dati in DAX Studio

Il tempo di esecuzione totale è di soli 1861 millisecondi perché utilizzava già una cache. Quindi svuota sempre la cache prima di eseguire le query.

Se esegui la query Early Materialization, puoi vedere che il tempo totale impiegato è di 9485 millisecondi. Ha generato una cache di dati e un output di una riga, ma ha restituito 25 milioni di righe.

Idee di materializzazione per cache di dati in DAX Studio

Non è necessario materializzare 25 milioni di righe per ottenere un risultato di una riga perché richiede tempo e rallenta le prestazioni di DAX.

Se esegui la query Late Materialization, puoi vedere che l'intero calcolo ha richiesto solo 1340 millisecondi. Ha anche generato 2 cache di dati, ognuna delle quali ha restituito 5003 righe.

Idee di materializzazione per cache di dati in DAX Studio

Se guardi il Physical Query Plan, puoi vedere 5000 righe. Non hanno lo stesso numero di righe. Il risultato dei tempi del server a volte avrà una piccola discrepanza rispetto al numero esatto di righe nel piano di query.

Idee di materializzazione per cache di dati in DAX Studio

Quindi, lavorando su una cache di dati con 25 milioni di righe, ora hai due cache di dati con 5003 righe. Ecco perché lavorare con la materializzazione successiva ottiene risultati più rapidi rispetto alla materializzazione iniziale.

All'interno di ogni query di materializzazione

Osservando semplicemente la query, puoi già vedere che la materializzazione successiva è più veloce. La query Early Materialization conta le righe di una tabella di riepilogo.

Idee di materializzazione per cache di dati in DAX Studio

La tabella che viene riepilogata e materializzata è più grande di un semplice di sulla tabella, che è ciò che sta facendo la query Late Materialization.

Se la tua query è lenta, inizia osservando quante righe vengono estratte nella tua query e quante sono necessarie per l'output. Puoi anche andare al Logical Query Plan e seguire il flusso di lavoro che sta avvenendo all'interno del calcolo.


Che cos'è DAX Studio in LuckyTemplates Desktop
Esercitazione su DAX: contesto e
misura del motore di calcolo in LuckyTemplates: suggerimenti e tecniche per l'ottimizzazione

Conclusione

La materializzazione si verifica quando le query estraggono colonne o righe dal modello di dati. Questo processo avviene naturalmente quando il tuo motore ottiene i dati dal tuo modello di dati per fornire risultati per la tua query.

Tuttavia, possono verificarsi problemi se DAX estrae un numero di righe eccessivo rispetto a quello necessario per il risultato. Questo problema può essere risolto semplificando il DAX per eseguire processi specifici.


Power Automate si applica a ogni azione nei flussi di lavoro

Power Automate si applica a ogni azione nei flussi di lavoro

Scopri l

Tecniche di modellazione dei dati per organizzare le misure DAX

Tecniche di modellazione dei dati per organizzare le misure DAX

Tecniche di modellazione dei dati per organizzare meglio le misure DAX per un flusso di lavoro più efficiente.

Filtro Power Apps: cosè e come si usa?

Filtro Power Apps: cosè e come si usa?

Scopri come utilizzare la funzione di filtro in Power Apps e come incorporarla nelle formule esistenti all

Come commentare più righe in Python: una guida semplice e veloce

Come commentare più righe in Python: una guida semplice e veloce

Come commentare più righe in Python: una guida semplice e veloce

Connettori Power Automate: numero, testo e data e ora

Connettori Power Automate: numero, testo e data e ora

Acquisisci familiarità con i connettori Power Automate per la manipolazione di numeri, testo e date/ore.

Budget Vs Actual Vs Last Year - Suggerimenti per la rendicontazione finanziaria

Budget Vs Actual Vs Last Year - Suggerimenti per la rendicontazione finanziaria

Ora, è molto facile studiare il budget rispetto all

Come salvare e caricare un file RDS in R

Come salvare e caricare un file RDS in R

Imparerai come salvare e caricare oggetti da un file .rds in R. Questo articolo tratta anche come importare oggetti da R a LuckyTemplates.

Che cosè Power Query e M Language: una panoramica dettagliata

Che cosè Power Query e M Language: una panoramica dettagliata

Scopri tutto su Power Query e il linguaggio M per la trasformazione e la preparazione dei dati nel desktop di LuckyTemplates.

Cosè il sé in Python: esempi del mondo reale

Cosè il sé in Python: esempi del mondo reale

Cos'è il sé in Python: esempi del mondo reale

Rivisitazione dei primi N giorni lavorativi: una soluzione per il linguaggio di codifica DAX

Rivisitazione dei primi N giorni lavorativi: una soluzione per il linguaggio di codifica DAX

In questa esercitazione sul linguaggio di codifica DAX, scopri come usare la funzione GENERATE e come modificare dinamicamente il titolo di una misura.