Prestandaproblem i DAX Studio: CallBackDataID

Den här handledningen kommer att diskutera CallBackDataID , som är ett prestandaproblem i DAX Studio. Du kommer att lära dig vad den gör och hur den påverkar prestandan för din DAX-fråga.

Lagringsmotorn arbetar för att tillhandahålla data till formelmotorn i form av en datacache. Men när lagringsmotorn inte kan utvärdera ett uttryck, frågar den och anropar formelmotorn för att få hjälp med att använda CallBackDataID .

Att ha ett CallBackDataID i din beräkning saktar ner prestandan för DAX eftersom den använder både lagrings- och formelmotorn. Det är dock fortfarande bättre än att bara formelmotorn gör allt arbete eftersom den fortfarande fungerar på komprimerad data och inte kräver materialisering.

Dessutom, när formelmotorn är inblandad, cachelagras inte resultaten. Cachar förbättrar användarupplevelsen när du kör en fråga eller åtgärd i LuckyTemplates.

Innehållsförteckning

Var hittar du CallBackDataID

CallBackDataID finns i Server Timings i DAX Studio. På grund av deras betydelse markeras de i xmSQL-satsen. När du vill optimera din DAX är det bästa stället att börja med att hitta CallBackDataID .

En annan optimeringsteknik är att utnyttja filtren inär det är möjligt. Att använda CALCULATE i filtren är bättre än att användasom ett bord. FILTER är en iterator och när du filtrerar en tabell kommer den att itereras av. Närvaron av dessa två iteratorer kan sakta ner din fråga.

Här är två exempelfrågor med och utan CallBackDataID .

Prestandaproblem i DAX Studio: CallBackDataID

Detta är ett lokaliserat mått som definierar de två frågorna ovan.

Prestandaproblem i DAX Studio: CallBackDataID

Det översta måttet itererar försäljningstabellen, multiplicerar det aktuella priset och kvantiteten och summerar det sedan. Det nedersta måttet kontrollerar om inköpsdatumet är större än eller lika med 31 mars 2016. Att ha en funktion i ett mått skapar ett CallBackDataID eftersom det inte använder CALCULATE .

För att testa detta, kör frågan som har CallBackDataID . Se till att rensa cacheminnet och aktivera Server Timings och Query Plans innan du kör det.

Om du klickar på fliken Server Timings längst ner kan du se att den första skanningen är markerad. Detta beror på närvaron av CallBackDataID .

Prestandaproblem i DAX Studio: CallBackDataID

Du kan också se CallBackDataID i xmSQL-satsen. IF - funktionen i måttet ligger utanför lagringsmotorns kapacitet så den ber om hjälp från formelmotorn.

Prestandaproblem i DAX Studio: CallBackDataID

Hur man löser prestandaproblemet

Om du kör frågan som inte har ett CallBackDataID , kan du se att skanningarna inte längre är markerade.

Prestandaproblem i DAX Studio: CallBackDataID

Detta beror på att CALCULATE -filtret trycks ner till lagringsmotorn. Den behöver inte hjälp från formelmotorn längre eftersom den kan fungera av sig själv.

Så mycket som möjligt, försök att använda filter i CALCULATE . Den optimerar DAX-prestanda genom att driva in det mesta av arbetet i lagringsmotorn, vilket gör det snabbare.




Slutsats

Prestandaträffar kan uppstå om din fråga är för komplex för att lagringsmotorn ska fungera. Det tar med onödiga processer som CallBackDataID i beräkningen och saktar ner din DAX. Du kan mildra det genom att använda filter i CALCULATE .


Pipe In R: Anslutningsfunktioner med Dplyr

Pipe In R: Anslutningsfunktioner med Dplyr

I den här handledningen kommer du att lära dig hur du kopplar ihop funktioner med hjälp av dplyr-röroperatorn i programmeringsspråket R.

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX från LuckyTemplates låter dig returnera rankningen av ett specifikt nummer i varje tabellrad som utgör en del av en lista med nummer.

Extrahera LuckyTemplates-teman och bilder från PBIX

Extrahera LuckyTemplates-teman och bilder från PBIX

Lär dig hur du tar isär en PBIX-fil för att extrahera LuckyTemplates-teman och bilder från bakgrunden och använda den för att skapa din rapport!

Excel Formler Fuskblad: Mellanvägledning

Excel Formler Fuskblad: Mellanvägledning

Excel Formler Fuskblad: Mellanvägledning

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

Python i LuckyTemplates: Hur man installerar och ställer in

Python i LuckyTemplates: Hur man installerar och ställer in

Lär dig hur du installerar programmeringsspråket Python i LuckyTemplates och hur du använder dess verktyg för att skriva koder och visa bilder.

Beräkna dynamiska vinstmarginaler – enkel analys av LuckyTemplates med DAX

Beräkna dynamiska vinstmarginaler – enkel analys av LuckyTemplates med DAX

Lär dig hur du beräknar dynamiska vinstmarginaler vid sidan av LuckyTemplates och hur du kan få fler insikter genom att gräva djupare i resultaten.

Sortering av datumtabellkolumner i LuckyTemplates

Sortering av datumtabellkolumner i LuckyTemplates

Lär dig hur du sorterar fälten från en utökad datumtabells kolumner korrekt. Detta är en bra strategi att göra för svåra fält.

Hitta dina bästa produkter för varje region i LuckyTemplates med DAX

Hitta dina bästa produkter för varje region i LuckyTemplates med DAX

I den här artikeln går jag igenom hur du kan hitta dina toppprodukter per region med hjälp av DAX-beräkningar i LuckyTemplates, inklusive TOPN- och CALCULATE-funktionerna.

Skräpdimension: Vad är det och varför det är allt annat än skräp

Skräpdimension: Vad är det och varför det är allt annat än skräp

Lär dig hur du använder en skräpdimension för flaggor med låg kardinalitet som du vill infoga i din datamodell på ett effektivt sätt.