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,


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

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 blog tratterà anche come importare oggetti da R a LuckyTemplates.

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.

Mostra approfondimenti utilizzando la tecnica di visualizzazione dinamica multi-thread in LuckyTemplates

Mostra approfondimenti utilizzando la tecnica di visualizzazione dinamica multi-thread in LuckyTemplates

Questo tutorial illustrerà come utilizzare la tecnica di visualizzazione dinamica multi-thread per creare approfondimenti dalle visualizzazioni di dati dinamici nei report.

Introduzione al filtraggio del contesto in LuckyTemplates

Introduzione al filtraggio del contesto in LuckyTemplates

In questo articolo, esaminerò il contesto del filtro. Il contesto del filtro è uno degli argomenti principali che qualsiasi utente di LuckyTemplates dovrebbe inizialmente conoscere.

I migliori suggerimenti per lutilizzo delle app nel servizio online LuckyTemplates

I migliori suggerimenti per lutilizzo delle app nel servizio online LuckyTemplates

Voglio mostrare come il servizio online di LuckyTemplates Apps può aiutare nella gestione di diversi report e approfondimenti generati da varie fonti.

Analizza le variazioni del margine di profitto nel tempo: analisi con LuckyTemplates e DAX

Analizza le variazioni del margine di profitto nel tempo: analisi con LuckyTemplates e DAX

Scopri come elaborare le modifiche al margine di profitto utilizzando tecniche come la ramificazione delle misure e la combinazione di formule DAX in LuckyTemplates.

Idee di materializzazione per cache di dati in DAX Studio

Idee di materializzazione per cache di dati in DAX Studio

Questo tutorial discuterà delle idee di materializzazione delle cache di dati e di come influiscono sulle prestazioni dei DAX nel fornire risultati.

Reporting aziendale tramite LuckyTemplates

Reporting aziendale tramite LuckyTemplates

Se finora utilizzi ancora Excel, questo è il momento migliore per iniziare a utilizzare LuckyTemplates per le tue esigenze di reportistica aziendale.

Che cosè il gateway LuckyTemplates? Tutto quello che devi sapere

Che cosè il gateway LuckyTemplates? Tutto quello che devi sapere

Che cos'è il gateway LuckyTemplates? Tutto quello che devi sapere