Ydelsesproblem i DAX Studio: CallBackDataID

Denne vejledning vil diskutere CallBackDataID , som er et ydeevneproblem i DAX Studio. Du lærer, hvad det gør, og hvordan det påvirker ydeevnen af ​​din DAX-forespørgsel.

Lagermotoren arbejder med at levere data til formelmotoren i form af en datacache. Men når lagermotoren ikke er i stand til at evaluere et udtryk, spørger den og kalder formelmotoren tilbage for at få hjælp til at bruge CallBackDataID .

At have et CallBackDataID i din beregning sænker ydeevnen af ​​DAX, fordi den bruger både lager- og formelmotoren. Det er dog stadig bedre end kun at have formelmotoren til at udføre alt arbejdet, fordi den stadig udfører på komprimerede data og ikke kræver materialisering.

Når formelmotoren er involveret, cachelagres resultaterne heller ikke. Caches forbedrer brugeroplevelsen ved at køre en forespørgsel eller måling i LuckyTemplates.

Indholdsfortegnelse

Hvor finder jeg CallBackDataID

CallBackDataID kan findes i Server Timings inde i DAX Studio. På grund af deres betydning er de fremhævet i xmSQL-sætningen. Når du ønsker at optimere din DAX, er det bedste sted at starte at finde CallBackDataID'et .

En anden optimeringsteknik er at udnytte filtrene indnår det er muligt. Det er bedre at bruge CALCULATE i filtrene end at brugesom et bord. FILTER er en iterator, og når du filtrerer en tabel, vil den blive itereret af. Tilstedeværelsen af ​​disse to iteratorer kan gøre din forespørgsel langsommere.

Her er to eksempler på forespørgsler med og uden CallBackDataID .

Ydelsesproblem i DAX Studio: CallBackDataID

Dette er et lokaliseret mål, der definerer de to forespørgsler ovenfor.

Ydelsesproblem i DAX Studio: CallBackDataID

Det øverste mål gentager salgstabellen, multiplicerer den aktuelle pris og mængde og summerer det derefter op. Det nederste mål kontrollerer, om købsdatoen er større end eller lig med 31. marts 2016. At have en funktion i et mål opretter et CallBackDataID , fordi det ikke bruger CALCULATE .

For at teste dette skal du køre forespørgslen, der har CallBackDataID . Sørg for at rydde cachen og slå Server Timings og Query Plans til, før du kører det.

Hvis du klikker på fanen Server Timings nederst, kan du se, at den første scanning er fremhævet. Dette er på grund af tilstedeværelsen af ​​CallBackDataID .

Ydelsesproblem i DAX Studio: CallBackDataID

Du kan også se CallBackDataID'et i xmSQL-sætningen. IF - funktionen i målingen er uden for lagermotorens muligheder, så den beder om hjælp fra formelmotoren.

Ydelsesproblem i DAX Studio: CallBackDataID

Sådan løses præstationsproblemet

Hvis du kører forespørgslen, der ikke har et CallBackDataID , kan du se, at scanningerne ikke længere er fremhævet.

Ydelsesproblem i DAX Studio: CallBackDataID

Dette skyldes, at CALCUATE- filteret bliver skubbet ned til lagermotoren. Det behøver ikke hjælp fra formelmotoren længere, fordi det kan fungere af sig selv.

Prøv så vidt muligt at bruge filtre i CALCUATE . Det optimerer DAX-ydelsen ved at skubbe det meste af arbejdet ind i storage-motoren, hvilket gør det hurtigere.




Konklusion

Ydeevnehits kan opstå, hvis din forespørgsel er for kompleks til, at storage-motoren kan fungere. Det bringer unødvendige processer som CallBackDataID i beregningen og sinker din DAX. Du kan afbøde det ved at bruge filtre i CALCULATE .


Pipe In R: Tilslutningsfunktioner med Dplyr

Pipe In R: Tilslutningsfunktioner med Dplyr

I denne øvelse lærer du, hvordan du kæder funktioner sammen ved hjælp af dplyr-røroperatoren i programmeringssproget R.

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX fra LuckyTemplates giver dig mulighed for at returnere rangeringen af ​​et specifikt tal i hver tabelrække, der udgør en del af en liste over tal.

Udpakning af LuckyTemplates-temaer og -billeder fra PBIX

Udpakning af LuckyTemplates-temaer og -billeder fra PBIX

Lær, hvordan du adskiller en PBIX-fil for at udtrække LuckyTemplates-temaer og -billeder fra baggrunden og bruge den til at oprette din rapport!

Excel Formler Snydeark: Mellemvejledning

Excel Formler Snydeark: Mellemvejledning

Excel Formler Snydeark: Mellemvejledning

LuckyTemplates kalendertabel: Hvad er det, og hvordan man bruger det

LuckyTemplates kalendertabel: Hvad er det, og hvordan man bruger det

LuckyTemplates kalendertabel: Hvad er det, og hvordan man bruger det

Python i LuckyTemplates: Sådan installeres og konfigureres

Python i LuckyTemplates: Sådan installeres og konfigureres

Lær, hvordan du installerer programmeringssproget Python i LuckyTemplates, og hvordan du bruger dets værktøjer til at skrive koder og vise billeder.

Beregning af dynamiske fortjenestemargener – nem analyse af LuckyTemplates med DAX

Beregning af dynamiske fortjenestemargener – nem analyse af LuckyTemplates med DAX

Lær, hvordan du beregner dynamiske fortjenstmargener ved siden af ​​LuckyTemplates, og hvordan du kan få mere indsigt ved at grave dybere ned i resultaterne.

Sortering af datotabelkolonner i LuckyTemplates

Sortering af datotabelkolonner i LuckyTemplates

Lær, hvordan du sorterer felterne fra kolonner med udvidet datotabel korrekt. Dette er en god strategi at gøre for vanskelige felter.

Find dine topprodukter for hver region i LuckyTemplates ved hjælp af DAX

Find dine topprodukter for hver region i LuckyTemplates ved hjælp af DAX

I denne artikel gennemgår jeg, hvordan du kan finde dine topprodukter pr. region ved hjælp af DAX-beregninger i LuckyTemplates, herunder funktionerne TOPN og CALCUATE.

Junk Dimension: Hvad er det, og hvorfor det er alt andet end junk

Junk Dimension: Hvad er det, og hvorfor det er alt andet end junk

Lær, hvordan du bruger en uønsket dimension til flag med lav kardinalitet, som du ønsker at inkorporere i din datamodel på en effektiv måde.