Ytelsesproblem i DAX Studio: CallBackDataID

Denne opplæringen vil diskutere CallBackDataID , som er et ytelsesproblem i DAX Studio. Du vil lære hva det gjør og hvordan det påvirker ytelsen til DAX-søket ditt.

Lagringsmotoren fungerer for å gi data til formelmotoren i form av en databuffer. Men når lagringsmotoren ikke er i stand til å evaluere et uttrykk, spør den og kaller tilbake formelmotoren for å få hjelp med å bruke CallBackDataID .

Å ha en CallBackDataID i beregningen reduserer ytelsen til DAX fordi den bruker både lagrings- og formelmotoren. Det er imidlertid fortsatt bedre enn å bare ha formelmotoren til å gjøre alt arbeidet, fordi det fortsatt yter på komprimerte data og vil ikke kreve materialisering.

Dessuten, når formelmotoren er involvert, bufres ikke resultatene. Cacher forbedrer brukeropplevelsen ved å kjøre en spørring eller et mål i LuckyTemplates.

Innholdsfortegnelse

Hvor finner jeg CallBackDataID

CallBackDataID finner du i Server Timings i DAX Studio. På grunn av deres betydning er de uthevet i xmSQL-setningen. Når du ønsker å optimalisere DAX, er det å finne CallBackDataID det beste stedet å begynne.

En annen optimaliseringsteknikk er å utnytte filtrene innnår det er mulig. Å bruke CALCULATE i filtrene er bedre enn å brukesom et bord. FILTER er en iterator, og når du filtrerer en tabell, kommer den til å bli iterert av. Tilstedeværelsen av disse to iteratorene kan redusere søket ditt.

Her er to eksempelspørringer med og uten CallBackDataID .

Ytelsesproblem i DAX Studio: CallBackDataID

Dette er et lokalisert mål som definerer de to søkene ovenfor.

Ytelsesproblem i DAX Studio: CallBackDataID

Det øverste målet gjentar salgstabellen, multipliserer gjeldende pris og kvantitet og summerer det opp. Det nederste målet sjekker om kjøpsdatoen er større enn eller lik 31. mars 2016. Å ha en funksjon i et mål oppretter en CallBackDataID fordi den ikke bruker CALCULATE .

For å teste dette, kjør spørringen som har CallBackDataID . Sørg for å tømme hurtigbufferen og slå på Server Timings og Query Plans før du kjører den.

Hvis du klikker på fanen Server Timings nederst, kan du se at den første skanningen er uthevet. Dette er på grunn av tilstedeværelsen av CallBackDataID .

Ytelsesproblem i DAX Studio: CallBackDataID

Du kan også se CallBackDataID i xmSQL-setningen. IF - funksjonen i målet er utenfor lagringsmotorens muligheter, så den ber om hjelp fra formelmotoren.

Ytelsesproblem i DAX Studio: CallBackDataID

Hvordan løse ytelsesproblemet

Hvis du kjører spørringen som ikke har en CallBackDataID , kan du se at skanningene ikke lenger er uthevet.

Ytelsesproblem i DAX Studio: CallBackDataID

Dette er fordi CALCUATE- filteret skyves ned til lagringsmotoren. Den trenger ikke hjelp fra formelmotoren lenger fordi den kan fungere av seg selv.

Så mye som mulig, prøv å bruke filtre i CALCUATE . Den optimerer DAX-ytelsen ved å skyve det meste av arbeidet inn i lagringsmotoren, noe som gjør det raskere.




Konklusjon

Ytelsestreff kan oppstå hvis søket ditt er for komplekst til at lagringsmotoren kan fungere. Det tar med unødvendige prosesser som CallBackDataID i beregningen og senker DAX-en din. Du kan redusere det ved å bruke filtre i CALCUATE .


Pipe In R: Koblingsfunksjoner med Dplyr

Pipe In R: Koblingsfunksjoner med Dplyr

I denne opplæringen lærer du hvordan du kobler funksjoner sammen ved å bruke dplyr-røroperatøren i programmeringsspråket R.

RANKX Deep Dive: A LuckyTemplates DAX-funksjon

RANKX Deep Dive: A LuckyTemplates DAX-funksjon

RANKX fra LuckyTemplates lar deg returnere rangeringen til et spesifikt tall i hver tabellrad som utgjør en del av en liste med tall.

Trekker ut LuckyTemplates-temaer og bilder fra PBIX

Trekker ut LuckyTemplates-temaer og bilder fra PBIX

Lær hvordan du demonterer en PBIX-fil for å trekke ut LuckyTemplates-temaer og bilder fra bakgrunnen og bruke den til å lage rapporten din!

Excel Formulas Cheat Sheet: Mellomveiledning

Excel Formulas Cheat Sheet: Mellomveiledning

Excel Formulas Cheat Sheet: Mellomveiledning

LuckyTemplates-kalendertabell: Hva er det og hvordan du bruker det

LuckyTemplates-kalendertabell: Hva er det og hvordan du bruker det

LuckyTemplates-kalendertabell: Hva er det og hvordan du bruker det

Python i LuckyTemplates: Hvordan installere og sette opp

Python i LuckyTemplates: Hvordan installere og sette opp

Lær hvordan du installerer programmeringsspråket Python i LuckyTemplates og hvordan du bruker verktøyene til å skrive koder og vise visuelle elementer.

Beregning av dynamiske fortjenestemarginer – enkel analyse av LuckyTemplates med DAX

Beregning av dynamiske fortjenestemarginer – enkel analyse av LuckyTemplates med DAX

Lær hvordan du beregner dynamiske fortjenestemarginer ved siden av LuckyTemplates og hvordan du kan få mer innsikt ved å grave dypere inn i resultatene.

Sortering av datotabellkolonner i LuckyTemplates

Sortering av datotabellkolonner i LuckyTemplates

Lær hvordan du sorterer feltene fra kolonner med utvidet datotabell på riktig måte. Dette er en god strategi å gjøre for vanskelige felt.

Finn dine beste produkter for hver region i LuckyTemplates ved å bruke DAX

Finn dine beste produkter for hver region i LuckyTemplates ved å bruke DAX

I denne artikkelen går jeg gjennom hvordan du kan finne de beste produktene dine per region ved å bruke DAX-beregninger i LuckyTemplates, inkludert TOPN- og CALCUATE-funksjonene.

Søppeldimensjon: Hva er det og hvorfor det er alt annet enn søppel

Søppeldimensjon: Hva er det og hvorfor det er alt annet enn søppel

Lær hvordan du bruker en søppeldimensjon for flagg med lav kardinalitet som du ønsker å inkludere i datamodellen din på en effektiv måte.