Cache de date într-un calcul DAX

În acest tutorial, veți afla despre ce fac cache-urile de date într-un calcul DAX. Veți înțelege cum funcționează cu formulele și motoarele de stocare pentru a oferi răspunsuri la întrebările dvs.

Cuprins

Ce sunt cache-urile de date?

Motorul de stocare interacționează cu motorul de formule sub forma unui cache de date.

Dacă vă amintiți din postările anterioare de blog despre Structura de interogare DAX, veți ști că motorul de formule solicită date de la motorul de stocare. Acesta din urmă merge apoi la baza de date, primește diferite tipuri de date și apoi le returnează înapoi în motorul de formule sub forma unui cache de date.

Motorul de stocare poate face calcule simple și agregări, ceea ce îl face mai rapid. De asemenea, oferă paralelism care poate umple mai multe cache-uri de date simultan. O interogare a motorului de stocare poate dura timp pentru a genera un răspuns. Dar dacă adăugați toate interogările diferite ale motorului de stocare, rezultatele nu vor fi aceleași, deoarece umple mai mult de un cache de date.

Motorul de formule, pe de altă parte, funcționează pe interogări complexe. Deoarece este un motor cu un singur thread, poate folosi doar un singur cache final de date consolidate. Începe să lucreze la memoria cache de date odată ce toate solicitările sunt completate de motorul de stocare.

Dacă solicitarea motorului de formule este exact aceeași cu cererea anterioară, memoria cache care a fost returnată anterior va fi folosită din nou. Motorul de stocare este suficient de inteligent pentru a returna aceeași memorie cache de date dacă primește aceeași solicitare. Acest lucru face performanța DAX-ului mai rapidă, deoarece datele sunt deja stocate în cache.

Când rulați o măsură, este important să o rulați împotriva unui cache rece; evitați întotdeauna să vă rulați interogările în memoria cache caldă. Un cache cald înseamnă că memoria cache de date a motorului de stocare este deja formată și gata să fie returnată.

Care sunt caracteristicile cheie?

Cache-urile de date sunt tabele materializate în memorie care necesită timp și consumă RAM. Rețineți întotdeauna că materializarea ar trebui să fie cât mai mică posibil.

O altă caracteristică cheie este că aceste cache-uri sunt necomprimate . Odată ce iese din motorul de stocare și trimis la motorul de formule, memoria cache de date devine un tabel complet necomprimat în memorie. Această execuție este mult mai lentă decât o solicitare a motorului de stocare de la egal la egal, care este totul în memorie și comprimat.

Nu există nicio problemă cu utilizarea motorului de formule; trebuie doar să obțineți motorul de stocare pentru a face munca cât mai mult posibil.

Cache-urile de date sunt, de asemenea, temporare. Ele există pentru o vreme și apoi dispar. Chiar dacă sunt materializate în memorie, nu sunt persistente, așa că vor fi șterse.

Unde să găsiți cache-urile de date?

Puteți găsi aceste informații în coloana Înregistrări ale planurilor de interogare fizică și în Timingurile serverului DAX Studio din coloana Rânduri . Acesta va arăta câte rânduri sunt produse de motorul de stocare și sunt trimise către motorul de formulă.

Dacă rulați anumite teste în cronometrarea serverului, veți observa că numărul rândurilor poate fi redus puțin. Acesta este doar un ghid al câte rânduri trageți în sus.

Principalul lucru de reținut în cazul cache-urilor de date este că numărul de rânduri materializate ar trebui să fie egal cu numărul de rânduri necesare pentru ieșire cât mai aproape posibil. Dacă există o diferență mare în numărul de rânduri, înseamnă că operațiunea de comandă este dezactivată.

Dacă numărul de rânduri materializate este egală cu cantitatea de rânduri necesare pentru rezultat, se numește Materializare târzie . Cu toate acestea, dacă numărul de rânduri materializate este mai mare decât numărul de rânduri necesare, se numește materializare timpurie . Deoarece acestea sunt date necomprimate, nu ar trebui să lăsați ambele motoare să le materializeze, deoarece va încetini performanța DAX.

Acesta este un exemplu de materializare timpurie:

Cache de date într-un calcul DAX

În Planul de interogare fizică, puteți vedea 25 de milioane de rânduri extrase în coloana Înregistrări. Cu toate acestea, interogarea eșantion nu are nevoie de 25 de milioane de rânduri de ieșire. Aceasta înseamnă că interogarea a extras prea multe rânduri decât era necesar.

Dacă te uiți la Timingurile serverului, vei vedea aceeași cantitate de rânduri trase în coloana Rânduri.

Cache de date într-un calcul DAX

În imaginile CPU SE , veți vedea un număr dacă există paralelisme în interogările dvs. Deoarece acest exemplu nu are niciunul, a arătat 0.

Cache de date într-un calcul DAX


Ce este DAX Studio în LuckyTemplates Desktop
DAX Tutorial: Context și motorul de calcul
Analizorul VertiPaq în DAX Studio | Tutorial LuckyTemplates

Concluzie

Un DAX cu performanță lentă poate însemna că interogarea dvs. extrage cache inutile pentru ca motoarele dvs. să funcționeze. Cache-urile de date sunt responsabile pentru viteza și acuratețea DAX-ului dvs. deoarece motoarele lucrează pe ele pentru a genera răspunsuri pentru diferite solicitări. Pentru o performanță DAX mai rapidă, puteți rezolva această problemă construind corect modelul de date și măsurile DAX.

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