Cache de date: ce este și cum ajută la optimizarea interogărilor

În acest tutorial, veți afla ce este un cache de date și de ce este important. Un cache de date stochează biți de date care ar putea deveni valoroși pentru utilizare ulterioară.

Dacă aveți nevoie de aceleași informații într-o măsură sau acțiune viitoare, memoria cache de date va furniza informațiile de care aveți nevoie. Elimină ca sistemul să preia din nou aceleași seturi de date.

În acest tutorial, veți trece prin opt lucruri importante de reținut atunci când vă ocupați de cache-urile de date în LuckyTemplates:

Cache de date: ce este și cum ajută la optimizarea interogărilor

Cuprins

Definiția și scopul unui cache de date

Cache de date: ce este și cum ajută la optimizarea interogărilor

Un cache de date este un tabel temporar creat în memorie de către motorul de stocare . Acest tabel temporar este trimis motorului de formule care apoi iterează peste aceste informații și efectuează diferite operații în urma interogării.

Cache de date: ce este și cum ajută la optimizarea interogărilor

Toată comunicarea dintre motorul de formule și motorul de stocare are loc întotdeauna sub forma unui cache de date. Motorul de formule pregătește planurile de interogare și apoi trimite instrucțiunile motorului de stocare. Motorul de stocare îl trimite apoi înapoi la motorul de formule care returnează rezultatul înapoi utilizatorului.

Cache de date: ce este și cum ajută la optimizarea interogărilor

Deoarece motorul de formule nu are acces direct la datele stocate în DirectQuery și VertiPaq, se bazează pe motorul de stocare pentru cache-urile de date.

Cache de date: ce este și cum ajută la optimizarea interogărilor

Cache-ul de date trimis de motorul de stocare este într-un format necomprimat. Aceasta înseamnă că dimensiunea datelor stocate în instrumentul Vertipaq poate fi redusă.

Dar când este timpul să returnați memoria cache de date în motorul de formule, acesta nu poate fi comprimat, deoarece motorul de formule nu funcționează cu seturi de date comprimate.

Care este impactul unui cache de date asupra memoriei RAM

Cache de date: ce este și cum ajută la optimizarea interogărilor

Dacă motorul de stocare trimite bucăți uriașe de cache de date, acest lucru va ocupa mult spațiu pe RAM-ul software-ului. De asemenea, va consuma o cantitate semnificativă de timp pentru ca motorul de formulă să efectueze iterații și să producă un rezultat.

Deci, atunci când scrieți codul DAX, trebuie să înțelegeți că ar trebui să fie scris într-un mod care să minimizeze rândurile din memoria cache de date.

Cel mai bun scenariu ar fi să potriviți numărul de rânduri afișat în vizual cu numărul de rânduri returnate în memoria cache de date.

De cele mai multe ori, este dificil să returnezi aceeași cantitate de rânduri. Dacă se întâmplă acest lucru, va trebui să revizuiți codul DAX și să-l defalcați într-un mod care să optimizeze memoria cache de date produsă de motorul de stocare.

Cum o cache de date optimizează interogările

Funcții neoptimizate

Cache de date: ce este și cum ajută la optimizarea interogărilor

Unele dintre funcțiile din limbajul DAX nu sunt optimizate pentru motorul de stocare. Pentru a înțelege mai bine acest lucru, să ne uităm la un exemplu.

De exemplu, în codul dvs., în loc să utilizați SUMMARIZE, puteți utiliza funcția . Funcțiile SUMMARIZE și GROUPBY efectuează aceeași operație. Cu toate acestea, există diferențe notabile în funcție de scenariu.

Funcția GROUPBY nu este optimizată pentru motorul de stocare. Dacă utilizați funcția GROUPBY pe un tabel de fapte cu 12 milioane de rânduri, va produce un cache de date cu același număr de rânduri. Acesta poate fi de la 600 MB până la 1 GB.

Această dimensiune poate pune o presiune mare asupra memoriei RAM. Deci, în loc să utilizați GROUPBY, folosiți . Funcția SUMMARIZE are ca rezultat o dimensiune mai mică a memoriei cache a datelor. Îl puteți asocia cu GROUPBY ca funcție de nivel superior.

Reiterări reduse

Când scrieți măsurile sau interogările DAX, trebuie să vă asigurați că codul produs în culise este potrivit pentru motorul de stocare.

Cache de date: ce este și cum ajută la optimizarea interogărilor

Trebuie să scrieți codul DAX într-un mod care să producă un cache de date care poate fi folosit și în interogările ulterioare. Avantajul acestui lucru este că, în loc să efectueze o scanare separată folosind VertiPaq , motorul de stocare va verifica dacă a fost deja primită o interogare similară.

Dacă acest lucru este adevărat, înseamnă că memoria cache a datelor este disponibilă în memorie. Deci, în loc să scaneze din nou interogarea, VertiPaq o va returna pur și simplu din memoria cache în motorul de formule.

Cache de date: ce este și cum ajută la optimizarea interogărilor

Dacă vedeți un operator CALLBACKDATAID în interogarea motorului dvs. de stocare, înseamnă că acele interogări nu pot fi stocate în cache. Dacă în cazul în care o interogare similară este trimisă motorului de stocare, acesta va efectua o reiterare.

Astfel, VertiPaq va trebui să apeleze motorul de formule pentru a rezolva interogarea. Acest lucru crește timpul general de execuție deoarece memoria cache nu poate fi utilizată în acest caz.

Concluzie

Cache-ul de date este cel mai bun prieten al tău în limbajul DAX. Nu uitați să scrieți codul DAX într-un mod care să maximizeze spațiul de stocare și să reducă numărul de iterații al instrumentului VertiPaq. Puteți reutiliza memoria cache de date deja produsă de Motorul de stocare pentru a reduce timpul de execuție a interogării.

Leave a Comment

Ce este Sinele în Python: Exemple din lumea reală

Ce este Sinele în Python: Exemple din lumea reală

Ce este Sinele în Python: Exemple din lumea reală

Cum să salvați și să încărcați un fișier RDS în R

Cum să salvați și să încărcați un fișier RDS în R

Veți învăța cum să salvați și să încărcați obiecte dintr-un fișier .rds în R. Acest blog va trata, de asemenea, cum să importați obiecte din R în LuckyTemplates.

Primele N zile lucrătoare revizuite – O soluție de limbaj de codare DAX

Primele N zile lucrătoare revizuite – O soluție de limbaj de codare DAX

În acest tutorial despre limbajul de codare DAX, aflați cum să utilizați funcția GENERATE și cum să schimbați în mod dinamic titlul unei măsuri.

Prezentați perspective utilizând tehnica vizuală dinamică cu mai multe fire în LuckyTemplates

Prezentați perspective utilizând tehnica vizuală dinamică cu mai multe fire în LuckyTemplates

Acest tutorial va acoperi cum să utilizați tehnica Multi Threaded Dynamic Visuals pentru a crea informații din vizualizările dinamice de date din rapoartele dvs.

Introducere la filtrarea contextului în LuckyTemplates

Introducere la filtrarea contextului în LuckyTemplates

În acest articol, voi trece prin contextul filtrului. Contextul de filtrare este unul dintre subiectele majore despre care orice utilizator LuckyTemplates ar trebui să învețe inițial.

Cele mai bune sfaturi pentru utilizarea aplicațiilor din serviciul online LuckyTemplates

Cele mai bune sfaturi pentru utilizarea aplicațiilor din serviciul online LuckyTemplates

Vreau să arăt cum serviciul online LuckyTemplates Apps poate ajuta la gestionarea diferitelor rapoarte și informații generate din diverse surse.

Analizați modificările marjei de profit ore suplimentare – Analytics cu LuckyTemplates și DAX

Analizați modificările marjei de profit ore suplimentare – Analytics cu LuckyTemplates și DAX

Aflați cum să vă calculați modificările marjei de profit folosind tehnici precum măsurarea ramificării și combinarea formulelor DAX în LuckyTemplates.

Idei de materializare pentru cache-urile de date în DAX Studio

Idei de materializare pentru cache-urile de date în DAX Studio

Acest tutorial va discuta despre ideile de materializare a cache-urilor de date și despre modul în care acestea afectează performanța DAX-ului în furnizarea de rezultate.

Raportare de afaceri folosind LuckyTemplates

Raportare de afaceri folosind LuckyTemplates

Dacă încă utilizați Excel până acum, atunci acesta este cel mai bun moment pentru a începe să utilizați LuckyTemplates pentru nevoile dvs. de raportare a afacerii.

Ce este LuckyTemplates Gateway? Tot ce trebuie să știți

Ce este LuckyTemplates Gateway? Tot ce trebuie să știți

Ce este LuckyTemplates Gateway? Tot ce trebuie să știți