Cache dati: cosè e come aiuta a ottimizzare le query

Cache dati: cosè e come aiuta a ottimizzare le query

In questo tutorial imparerai cos'è una cache di dati e perché è importante. Una cache di dati memorizza bit di dati che potrebbero diventare preziosi per un utilizzo futuro.

Se hai bisogno delle stesse informazioni in una misura o azione futura, la cache dei dati fornirà le informazioni di cui hai bisogno. Elimina il fatto che il sistema recuperi nuovamente gli stessi set di dati.

In questo tutorial, esaminerai otto cose importanti da ricordare quando hai a che fare con le cache di dati in LuckyTemplates:

Cache dati: cos'è e come aiuta a ottimizzare le query

Sommario

Definizione e scopo di una cache di dati

Cache dati: cos'è e come aiuta a ottimizzare le query

Una cache di dati è una tabella temporanea creata in memoria dal motore di archiviazione . Questa tabella temporanea viene inviata al motore delle formule che quindi itera su queste informazioni ed esegue diverse operazioni in seguito alla query.

Cache dati: cos'è e come aiuta a ottimizzare le query

Tutta la comunicazione tra il motore delle formule e il motore di archiviazione avviene sempre sotto forma di cache di dati. Il motore delle formule prepara i piani di query e quindi invia le istruzioni al motore di archiviazione. Il motore di archiviazione lo invia quindi al motore di formula che restituisce il risultato all'utente.

Cache dati: cos'è e come aiuta a ottimizzare le query

Poiché il motore delle formule non ha accesso diretto ai dati archiviati in DirectQuery e VertiPaq, si affida al motore di archiviazione per le cache dei dati.

Cache dati: cos'è e come aiuta a ottimizzare le query

La cache dei dati inviata dal motore di archiviazione è in un formato non compresso. Ciò significa che la dimensione dei dati memorizzati nello strumento Vertipaq può essere ridotta.

Ma quando è il momento di restituire la cache dei dati al motore delle formule, non può essere compressa perché il motore delle formule non funziona con i set di dati compressi.

Qual è l'impatto di una cache di dati sulla RAM

Cache dati: cos'è e come aiuta a ottimizzare le query

Se il motore di archiviazione sta inviando enormi blocchi di cache di dati, questo richiederà molto spazio sulla RAM del software. Inoltre, il motore delle formule impiegherà molto tempo per eseguire le iterazioni e produrre un risultato.

Pertanto, quando si scrive il codice DAX, è necessario comprendere che deve essere scritto in modo da ridurre al minimo le righe nella cache dei dati.

Lo scenario migliore consiste nel far corrispondere il numero di righe mostrato nell'oggetto visivo con il numero di righe restituite nella cache dei dati.

La maggior parte delle volte è difficile restituire la stessa quantità di righe. In tal caso, sarà necessario rivedere il codice DAX e suddividerlo in modo da ottimizzare la cache dei dati prodotta dal motore di archiviazione.

Come una cache di dati ottimizza le query

Funzioni non ottimizzate

Cache dati: cos'è e come aiuta a ottimizzare le query

Alcune delle funzioni nel linguaggio DAX non sono ottimizzate per il motore di archiviazione. Per capire meglio questo, diamo un'occhiata a un esempio.

Ad esempio, nel tuo codice, invece di utilizzare SUMMARIZE, puoi utilizzare la funzione Le funzioni SUMMARIZE e GROUPBY eseguono la stessa operazione. Tuttavia, ci sono notevoli differenze a seconda dello scenario.

La funzione GROUPBY non è ottimizzata per Storage Engine. Se utilizzi la funzione GROUPBY su una tabella dei fatti con 12 milioni di righe, produrrà una cache di dati con lo stesso numero di righe. Questo può essere grande da 600 MB fino a 1 GB.

Questa dimensione può esercitare molta pressione sulla RAM. Quindi, invece di usare GROUPBY, usa . La funzione SUMMARIZE genera una dimensione della cache dei dati inferiore. Puoi abbinarlo a GROUPBY come funzione di primo livello.

Reiterazioni ridotte

Quando si scrivono le misure o le query DAX, è necessario assicurarsi che il codice prodotto dietro le quinte sia adatto al motore di archiviazione.

Cache dati: cos'è e come aiuta a ottimizzare le query

È necessario scrivere il codice DAX in modo da produrre una cache di dati che possa essere usata anche nelle query successive. Il vantaggio di questa operazione è che invece di eseguire una scansione separata utilizzando VertiPaq , il motore di archiviazione verificherà se è già stata ricevuta una query simile.

Se questo è vero, significa che la sua cache di dati è disponibile in memoria. Quindi, invece di eseguire nuovamente la scansione della query, VertiPaq la restituirà semplicemente dalla memoria cache al motore delle formule.

Cache dati: cos'è e come aiuta a ottimizzare le query

Se vedi un operatore CALLBACKDATAID nella query del motore di archiviazione, significa che tali query non possono essere memorizzate nella cache. Se nel caso in cui una query simile viene inviata al motore di archiviazione, eseguirà una reiterazione.

Pertanto, VertiPaq dovrà chiamare il motore delle formule per risolvere la query. Ciò aumenta il tempo di esecuzione complessivo perché in questo caso la memoria cache non può essere utilizzata.

Conclusione

La cache dei dati è la tua migliore amica nel linguaggio DAX. Ricordarsi di scrivere il codice DAX in modo da massimizzare lo spazio di archiviazione e ridurre il numero di iterazioni dello strumento VertiPaq. È possibile riutilizzare la cache dei dati già prodotta dallo Storage Engine per ridurre il tempo di esecuzione delle query.


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