Materialiseringsidéer för datacacher i DAX Studio

Denna handledning kommer att diskutera materialisering för datacachar i DAX Studio. Det här inlägget kommer att visa hur det påverkar din beräkning samtidigt som det genererar resultat med din fråga. Du kommer att lära dig vilken materialisering som är bättre för att maximera DAX:s prestanda.

Det finns två idéer om materialisering: tidig materialisering och sen materialisering .

Innehållsförteckning

Tidig materialisering

Tidig materialisering är när antalet materialiserade rader är större än antalet rader som behövs för utdata.

Om din produktion är en tabell per kalenderår och du har fem års data, är det onödigt att ta med många materialiserade rader. Den bästa praxisen är att ha antalet materialiserade rader lika med antalet rader som behövs. Men det är inte alltid fallet eftersom det beror på komplexiteten i dittoch datainställning.

Kom alltid ihåg att data består av kolumner. Så när formelmotorn behöver arbeta på en tabell, sammanförs kolumner igen i ett tabellformat, vilket är materialiseringen. I en idé om tidig materialisering skickar lagringsmotorn datacache till formelmotorn. Formelmotorn arbetar sedan på den cachen och utför komplexa processer.

Tidig materialisering kan orsakas av att du har komplexa kopplingar eller en många-till-många-relation i dina datamodeller. Det kan också orsakas av att ha komplexa filter eller iteratorer.

Det är inte fel att ha komplexa åtgärder; du måste bara ställa in dem korrekt för att utnyttja lagringsmotorn så mycket som möjligt.

Sen materialisering

Sen materialisering är när du har antalet materialiserade rader lika med eller nära antalet rader som behövs för din produktion.

Lagringsmotorn gör nästan allt arbete och lämnar ingenting till formelmotorn. Detta gör hela beräkningen snabbare.

Det här är exempel på frågor om tidig och sen materialisering:

Materialiseringsidéer för datacacher i DAX Studio

Innan du kör dessa frågor, se till att rensa cachen. Detta kommer att få dina frågor att köras mot den kalla cachen. Om du kör din DAX utan att rensa cacheminnet får du det här resultatet:

Materialiseringsidéer för datacacher i DAX Studio

Den totala exekveringstiden är bara 1861 millisekunder eftersom den redan använde en cache. Så rensa alltid din cache innan du kör dina frågor.

Om du kör frågan om tidig materialisering kan du se att den totala tiden det tog är 9485 millisekunder. Den genererade en datacache och en enradsutgång men returnerade 25 miljoner rader.

Materialiseringsidéer för datacacher i DAX Studio

Du behöver inte materialisera 25 miljoner rader för att få ett enradsresultat eftersom det tar tid och saktar ner DAX:s prestanda.

Om du kör sökfrågan Late Materialization kan du se att hela beräkningen bara tog 1340 millisekunder. Det genererade också 2 datacacher, med vardera 5003 rader.

Materialiseringsidéer för datacacher i DAX Studio

Om du tittar på den fysiska frågeplanen kan du se 5000 rader. De har inte lika många rader. Serverns resultat kommer ibland att ha en liten avvikelse till det exakta antalet rader i frågeplanen.

Materialiseringsidéer för datacacher i DAX Studio

Så från att arbeta på en datacache med 25 miljoner rader har du nu två datacache med 5003 rader. Det är därför som arbete med Later Materialization får snabbare resultat än Early Materialization.

Inuti varje materialiseringsfråga

Genom att bara titta på frågan kan du redan se att den senare materialiseringen är snabbare. Frågan om tidig materialisering räknar raderna i en sammanfattad tabell.

Materialiseringsidéer för datacacher i DAX Studio

Tabellen som sammanfattas och materialiseras är större än att bara göra enav på bordet, vilket är vad Late Materialization-frågan gör.

Om din fråga är långsam, börja med att titta på hur många rader som dras i din fråga och hur många som behövs för utdata. Du kan också gå till den logiska frågeplanen och följa flödet av arbete som sker inom beräkningen.




Slutsats

Materialisering sker när dina frågor drar kolumner eller rader från din datamodell. Denna process sker naturligt när din motor får data från din datamodell för att ge resultat för din fråga.

Däremot kan problem uppstå om din DAX drar för många rader än vad som behövs för resultatet. Det här problemet kan lösas genom att förenkla din DAX för att utföra specifika processer.


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.