Funzione CROSSJOIN DAX: tempistiche del server e piano di query

Funzione CROSSJOIN DAX: tempistiche del server e piano di query

In questa esercitazione si apprenderà come funziona la funzione in DAX usando il riquadro Server Timings e il relativo piano di query.

La funzione CROSSJOIN può essere utilizzata per creare un prodotto cartesiano di due tabelle. Un prodotto cartesiano è un insieme di tutte le possibili combinazioni di righe di due o più tabelle.

In questa esercitazione verrà usato il codice DAX riportato di seguito.

Funzione CROSSJOIN DAX: tempistiche del server e piano di query

Puoi vedere che la funzione CROSSJOIN genera una combinazione del prodotto Brand e Color anche se alcune di queste combinazioni non esistono nella tabella dei fatti . Il risultato è una tabella con un totale di 176 righe.

Nella scheda Server Timings, la prima query recupera il Brand dalla tabella Products, mentre la seconda query recupera il Color.

Funzione CROSSJOIN DAX: tempistiche del server e piano di query

Funzione CROSSJOIN DAX: tempistiche del server e piano di query

Nel Logical Query Plan , la prima riga restituisce il risultato sotto forma di tabella. La seconda e la terza riga nella tabella dei prodotti scansionano rispettivamente il colore e il marchio.

Funzione CROSSJOIN DAX: tempistiche del server e piano di query

Una volta ricevuti i dati, Formula Engine esegue un'iterazione sulla tabella e produce una combinazione di entrambe le colonne. Il CrossApply nella riga 2 corrisponde alla funzione CROSSJOIN.

Funzione CROSSJOIN DAX: tempistiche del server e piano di query

Sommario

Filtra i risultati CROSSJOIN in DAX

È possibile utilizzare la funzione per filtrare i risultati di un CROSSJOIN. Ad esempio, puoi usarlo per mostrare solo i prodotti che sono rossi.

Tuttavia, ricorda che non puoi inserire una funzione CROSSJOIN all'interno di un argomento FILTER .

Funzione CROSSJOIN DAX: tempistiche del server e piano di query

Ora, se esegui questo codice e controlli la scheda Server Timings, vedrai che il contesto del filtro non appare come una clausola WHERE nella query.

Funzione CROSSJOIN DAX: tempistiche del server e piano di query

La funzione CROSSJOIN può essere risolta solo dal Formula Engine . Il codice non funziona poiché si trova tra FILTER e che sono funzioni che possono essere risolte solo da Storage Engine . Pertanto, CROSSJOIN ha causato l'interruzione del ciclo tra queste due funzioni.

Funzione CROSSJOIN DAX: tempistiche del server e piano di query

Pertanto, è necessario inserire la funzione FILTER all'interno dell'argomento CROSSJOIN affinché il filtro funzioni.

Funzione CROSSJOIN DAX: tempistiche del server e piano di query

Ora, se esegui questo codice e controlli la scheda Server Timings, vedrai che la funzione FILTER è ora rappresentata dalla clausola WHERE.

Funzione CROSSJOIN DAX: tempistiche del server e piano di query

Nel piano di query logico, puoi vedere che invece dell'operatore di filtro, viene utilizzato il filtro VertiPaq .

Funzione CROSSJOIN DAX: tempistiche del server e piano di query

Questo perché la nuova condizione di filtro nel codice può essere trasferita allo Storage Engine. Dopo la restituzione del risultato, l'argomento CROSSJOIN viene quindi eseguito all'interno del motore di formula.

L'operatore IN

È inoltre possibile utilizzare l' operatore anziché il segno di uguale in un argomento FILTER.

L'operatore IN può essere utilizzato all'interno dell'argomento espressione della funzione FILTER per filtrare una tabella in base al fatto che un valore sia contenuto in un elenco di valori o in una tabella.

Funzione CROSSJOIN DAX: tempistiche del server e piano di query

Funzione CROSSJOIN DAX: tempistiche del server e piano di query

Quando si usa la combinazione FILTER – IN , il motore DAX deve eseguire un filtro IsEmpty che conferma se il colore del prodotto è rosso o nero.

Aggiungere la colonna delle vendite totali nel risultato CROSSJOIN DAX

Altre funzioni possono essere utilizzate anche insieme a CROSSJOIN.

Puoi usare la funzione per aggiungere un'altra colonna nella tua tabella e quindi scrivere l'argomento delle informazioni che vuoi mostrare.

In questo esempio, aggiungiamo una colonna Total Sales.

Funzione CROSSJOIN DAX: tempistiche del server e piano di query

Quando esegui il codice, i risultati restituiranno comunque 176 righe. Tuttavia, alcune combinazioni avranno valori vuoti nella colonna Total Sales. Questo perché queste combinazioni non hanno una riga corrispondente nella tabella Sales.

Funzione CROSSJOIN DAX: tempistiche del server e piano di query

Nella scheda Server Timings, il codice seleziona prima il Brand e il Colore. Somma quindi il prodotto della quantità e del prezzo netto di vendita.

Funzione CROSSJOIN DAX: tempistiche del server e piano di query

In questo caso, il motore DAX recupera innanzitutto tutte le combinazioni di marca e colore presenti all'interno della tabella Products, insieme a quelle con una riga corrispondente nella tabella Sales. Quindi, recupera separatamente le colonne marca e colore.

Nel Physical Query Plan, puoi vedere due cache di dati; uno per il marchio e un altro per il colore. Quando moltiplichi i loro record totali, ottieni 176 righe.

Funzione CROSSJOIN DAX: tempistiche del server e piano di query

Quindi, viene eseguita una ricerca su quelle 176 righe per vedere se hanno un valore corrispondente nella tabella Sales. Puoi vedere che solo 111 righe hanno valori. Le altre 65 righe restituiranno spazi vuoti.

Inoltre, se aggiungi più colonne nell'argomento CROSSJOIN, il risultato restituirà anche più righe.

Funzione CROSSJOIN DAX: tempistiche del server e piano di query

Conclusione

La funzione DAX CROSSJOIN genera una nuova tabella combinando le righe di una tabella con le righe di un'altra. Questa funzione è simile alla clausola CROSS JOIN in SQL e può essere utilizzata per creare query più complesse nel modello di dati.

Può generare un elenco di tutte le possibili combinazioni di valori da due o più tabelle. Può anche essere utilizzato per creare rapidamente una nuova tabella con un numero elevato di righe, che può essere utile per l'analisi dei dati, il test o il benchmarking delle prestazioni.

Nel complesso, la funzione CROSSJOIN è uno strumento utile negli scenari in cui è necessario combinare dati da più tabelle o generare un elenco di tutte le possibili combinazioni.

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