Problema di prestazioni in DAX Studio: CallBackDataID

Questa esercitazione discuterà di CallBackDataID , che è un problema di prestazioni in DAX Studio. Imparerai cosa fa e come influisce sulle prestazioni della tua query DAX.

Il motore di archiviazione funziona per fornire i dati al motore delle formule sotto forma di una cache di dati. Ma quando il motore di archiviazione non è in grado di valutare un'espressione, chiede e richiama il motore delle formule per assistenza utilizzando CallBackDataID .

La presenza di un CallBackDataID nel calcolo rallenta le prestazioni di DAX perché utilizza sia l'archiviazione che il motore delle formule. Tuttavia, è comunque meglio che avere solo il motore delle formule che fa tutto il lavoro perché funziona ancora su dati compressi e non richiede la materializzazione.

Inoltre, quando è coinvolto il motore delle formule, i risultati non vengono memorizzati nella cache. Le cache migliorano l'esperienza utente nell'esecuzione di una query o di una misura in LuckyTemplates.

Sommario

Dove trovare CallBackDataID

CallBackDataID è disponibile in Server Timings all'interno di DAX Studio. A causa della loro importanza, sono evidenziati nell'istruzione xmSQL. Quando stai cercando di ottimizzare il tuo DAX, trovare CallBackDataID è il miglior punto di partenza.

Un'altra tecnica di ottimizzazione consiste nell'utilizzare i filtri in quando possibile. Usare CALCULATE nei filtri è meglio che usare come tabella. FILTER è un iteratore e quando filtri una tabella, verrà iterata da . La presenza di questi due iteratori potrebbe rallentare la tua query.

Ecco due query di esempio con e senza CallBackDataID .

Problema di prestazioni in DAX Studio: CallBackDataID

Questa è una misura localizzata che definisce le due query di cui sopra.

Problema di prestazioni in DAX Studio: CallBackDataID

La misura superiore esegue l'iterazione della tabella delle vendite, moltiplica il prezzo corrente e la quantità, quindi li somma. La misura inferiore controlla se la data di acquisto è maggiore o uguale al 31 marzo 2016. Avere una funzione in una misura crea un CallBackDataID perché non utilizza CALCULATE .

Per verificarlo, eseguire la query con CallBackDataID . Assicurati di svuotare la cache e attivare Server Timings e Query Plans prima di eseguirlo.

Se fai clic sulla scheda Server Timings in basso, puoi vedere che la prima scansione è evidenziata. Ciò è dovuto alla presenza di CallBackDataID .

Problema di prestazioni in DAX Studio: CallBackDataID

Puoi anche vedere CallBackDataID nell'istruzione xmSQL. La funzione IF nella misura va oltre le capacità del motore di archiviazione, quindi richiede l'aiuto del motore di formula.

Problema di prestazioni in DAX Studio: CallBackDataID

Come risolvere il problema delle prestazioni

Se esegui la query che non ha un CallBackDataID , puoi vedere che le scansioni non sono più evidenziate.

Problema di prestazioni in DAX Studio: CallBackDataID

Ciò è dovuto al fatto che il filtro CALCULATE viene inviato al motore di archiviazione. Non ha più bisogno dell'aiuto del motore di formula perché può funzionare da solo.

Per quanto possibile, prova a utilizzare i filtri in CALCULATE . Ottimizza le prestazioni DAX spingendo la maggior parte del lavoro nel motore di archiviazione, rendendolo più veloce.


Storage Engine in LuckyTemplates: operatori VertiPaq e query
Misura in LuckyTemplates: suggerimenti e tecniche di ottimizzazione
Analizzatore VertiPaq in DAX Studio | Esercitazione su PowerBI

Conclusione

Potrebbero verificarsi problemi di prestazioni se la tua query è troppo complessa per il funzionamento del motore di archiviazione. Porta processi non necessari come CallBackDataID nel calcolo e rallenta il tuo DAX. Puoi mitigarlo utilizzando i filtri in CALCULATE .

Leave a Comment

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.