Funzione UNION DAX Vs Power Query

Funzione UNION DAX Vs Power Query

In questo tutorial imparerai una tecnica di ottimizzazione DAX utilizzando la funzione UNION. Questa esercitazione confronterà le prestazioni della funzione UNION rispetto a Power Query e altre tecniche per combinare le tabelle.

La funzione combina due tabelle in un'unica tabella combinando le loro righe e rimuovendo eventuali righe duplicate.

L'esempio in questa esercitazione è una tabella Sales suddivisa in tre tabelle per ogni anno (2007, 2008, 2009).

Sommario

La funzione UNION in DAX

Aprire DAX Studio e avviare Server Timings and Query Plan.

Funzione UNION DAX Vs Power Query

Il codice DAX riportato di seguito viene utilizzato come esempio:

Funzione UNION DAX Vs Power Query

Dopo aver eseguito il codice, vai alla scheda Server Timings . Puoi vedere che il codice richiede un totale di 5,4 secondi per essere eseguito. La maggior parte del tempo di esecuzione è stata spesa nello Storage Engine . Ognuna di queste tre query contiene la stessa operazione, ma gli anni sono diversi.

Funzione UNION DAX Vs Power Query

Dopo che queste tre query sono state restituite dallo Storage Engine, il Formula Engine esegue un'UNION, che può essere visualizzata nel Logical Query Plan. Il piano di query esegue anche un per calcolare le vendite totali.

Funzione UNION DAX Vs Power Query

Nel Physical Query Plan, puoi vedere le tre cache di dati contenenti le operazioni eseguite per ogni anno nella tabella Sales.

Funzione UNION DAX Vs Power Query

Confronto delle prestazioni DAX

Per creare il confronto, creiamo una misura per Total Sales utilizzando la tabella Sales originale.

Funzione UNION DAX Vs Power Query

Se esegui questo codice e vai alla scheda Server Timings , puoi vedere che questo è significativamente più efficiente della funzione UNION.

La funzione UNION consuma 97,9 kilobyte mentre la nuova misura consuma solo 1 KB.

Funzione UNION DAX Vs Power Query

Quando usi UNION, il motore DAX restituisce un'enorme quantità di cache di dati al motore di formula. Questo mette molta pressione sulla RAM.

Quindi, se hai a che fare con un modello di dati contenente più di un milione di righe, non è consigliabile utilizzare la funzione UNION

Alternative alla funzione UNION DAX

Invece di utilizzare UNION, puoi utilizzare tre funzioni SUMX per questo esempio. Ovvero, una funzione SUMX per ogni anno.

Funzione UNION DAX Vs Power Query

Quando esegui questo codice e vai alla scheda Server Timings, puoi vedere che il tempo di esecuzione è significativamente inferiore. È passato da 5.400 ms a 33 ms durante l'esecuzione di tre diverse query.

Funzione UNION DAX Vs Power Query

Un altro modo consiste nell'accodare la tabella del modello di dati in Power Query o nell'origine dati stessa.

Ma l'opzione migliore è creare una tabella calcolata che eseguirà l'unione di queste tre tabelle. Ma questa opzione ha i suoi pro e contro.

L'uso di una tabella calcolata consente di risparmiare il tempo di elaborazione complessivo rispetto all'esecuzione di un'aggiunta in Power Query. Tuttavia, ciò causerà un aumento delle dimensioni del database in VertiPaq.

Quando utilizzi una tabella calcolata, crei una nuova tabella che combina le tre tabelle. Ma queste tre tabelle divise continueranno a rimanere nel database.

Funzione UNION DAX Vs Power Query

In questo esempio, le tre tabelle consumano un totale di 25 MB. Se crei una tabella calcolata, consumerà altri 25 MB nella tua RAM.

Per casi delicati come questi, è necessario prendere una decisione ponderata su quale sarebbe la migliore linea d'azione da intraprendere.

Conclusione

La funzione UNION in DAX combina due tabelle in una, semplificando l'analisi dei dati. Funziona prendendo due tabelle come input e restituendo una nuova tabella che contiene tutte le righe di entrambe le tabelle di input. Tuttavia, questa funzione ha i suoi limiti.

La funzione UNION può essere più lenta di altri metodi di combinazione dei dati, soprattutto se le tabelle di input sono di grandi dimensioni. Può anche consumare più spazio nella memoria rispetto ad altre alternative.

Ogni volta che una situazione richiede la combinazione di tabelle, è importante valutare i pro ei contro prima di decidere di utilizzare la funzione UNION. Le tue alternative includono la funzione SUMX, una tabella del modello di dati o una tabella calcolata.

Ti auguro il meglio,


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.