Datacacher i en DAX-beräkning

I den här självstudien får du lära dig vad datacchar gör i en DAX-beräkning. Du kommer att förstå hur de fungerar med formeln och lagringsmotorerna för att ge svar på dina frågor.

Innehållsförteckning

Vad är datacacher?

Lagringsmotorn interagerar med formelmotorn i form av en datacache.

Om du kommer ihåg från tidigare blogginlägg om DAX-frågestrukturen, vet du att formelmotorn begär data från lagringsmotorn. Den senare går sedan till databasen, hämtar olika typer av data och returnerar den sedan tillbaka till formelmotorn i form av en datacache.

Lagringsmotorn kan göra enkel matematik och aggregering vilket gör det snabbare. Det erbjuder också parallellitet som kan fylla flera datacchar samtidigt. En lagringsmotorfråga kan ta tid att generera ett svar. Men om du lägger ihop alla olika lagringsmotorfrågor kommer resultaten inte att bli desamma eftersom den fyller mer än en datacache.

Formelmotorn, å andra sidan, fungerar på komplexa frågor. Eftersom det är en enkeltrådig motor kan den bara använda en slutlig konsoliderad datacache. Det börjar arbeta på datacchen när alla förfrågningar har fyllts av lagringsmotorn.

Om formelmotorbegäran är exakt densamma som den tidigare begäran kommer cachen som tidigare returnerades att användas igen. Lagringsmotorn är smart nog att returnera samma datacache om den får samma begäran. Detta gör DAX:s prestanda snabbare eftersom data redan är cachad.

När du kör en åtgärd är det viktigt att köra den mot en kall cache; undvik alltid att köra dina frågor i den varma cachen. En varm cache betyder att lagringsmotorns datacache redan är bildad och redo att returneras.

Vilka är nyckelfunktionerna?

Datacacher är tabeller som materialiseras i minnet som tar tid och äter RAM. Tänk alltid på att materialiseringen ska vara så låg som möjligt.

En annan nyckelfunktion är att dessa cachar är okomprimerade . När den väl kommer ut ur lagringsmotorn och skickas till formelmotorn blir datacachen en okomprimerad fullständig tabell i minnet. Denna exekvering är mycket långsammare än en begäran om peer-lagringsmotor, som allt finns i minnet och komprimerat.

Det är inga problem med att använda formelmotorn; du behöver bara få lagringsmotorn att göra jobbet så mycket som möjligt.

Datacacher är också tillfälliga. De finns ett tag och sedan är de borta. Även om de materialiseras i minnet, är de inte ihållande så de kommer att rensas ut.

Var hittar man datacacher?

Du kan hitta denna information i kolumnen Physical Query Plans Records och i DAX Studios Server Timings i Rows Column . Den kommer att visa hur många rader som produceras av lagringsmotorn och skickas till formelmotorn.

Om du kör vissa tester i serverns timings kommer du att märka att antalet rader kan minska med en aning. Detta är bara en riktlinje för hur många rader du drar upp.

Det viktigaste att tänka på med datacacher är att antalet rader som materialiseras bör vara lika med antalet rader som behövs för utdata så nära som möjligt. Om det är stor skillnad i antalet rader betyder det att orderoperationen är avstängd.

Om mängden materialiserade rader är lika med mängden rader som behövs för utdata, kallas det Sen materialisering . Men om antalet materialiserade rader är större än antalet rader som behövs kallas det tidig materialisering . Eftersom dessa är okomprimerade data bör du inte låta båda motorerna materialisera dem eftersom det kommer att sakta ner DAX:s prestanda.

Detta är ett exempel på en tidig materialisering:

Datacacher i en DAX-beräkning

I den fysiska frågeplanen kan du se 25 miljoner rader dras upp i postkolumnen. Men exempelfrågan behöver inte 25 miljoner rader med utdata. Det betyder att frågan drog för många rader än vad som behövdes.

Om du tittar på servertiderna kommer du att se samma antal rader som dras i radkolumnen.

Datacacher i en DAX-beräkning

I SE CPU- bilderna ser du ett nummer om det finns paralleller i dina frågor. Eftersom det här exemplet inte har några visade det 0.

Datacacher i en DAX-beräkning




Slutsats

En långsam DAX kan innebära att din fråga drar onödiga cacher för att dina motorer ska fungera. Datacacher är ansvariga för hastigheten och noggrannheten hos din DAX eftersom motorerna arbetar med dem för att generera svar för olika förfrågningar. För snabbare DAX-prestanda kan du lösa det här problemet genom att korrekt bygga din datamodell och DAX-mått.

Leave a Comment

Skapa en datumtabell i LuckyTemplates

Skapa en datumtabell i LuckyTemplates

Ta reda på varför det är viktigt att ha en dedikerad datumtabell i LuckyTemplates och lär dig det snabbaste och mest effektiva sättet att göra det.

LuckyTemplates mobilrapporteringstips och tekniker

LuckyTemplates mobilrapporteringstips och tekniker

Denna korta handledning belyser LuckyTemplates mobilrapporteringsfunktion. Jag ska visa dig hur du kan utveckla rapporter effektivt för mobila enheter.

Professional Service Analytics-rapporter i LuckyTemplates

Professional Service Analytics-rapporter i LuckyTemplates

I denna LuckyTemplates Showcase går vi igenom rapporter som visar professionell serviceanalys från ett företag som har flera kontrakt och kundengagemang.

Microsoft Power Platform-uppdateringar | Microsoft Ignite 2021

Microsoft Power Platform-uppdateringar | Microsoft Ignite 2021

Gå igenom de viktigaste uppdateringarna för Power Apps och Power Automate och deras fördelar och konsekvenser för Microsoft Power Platform.

Vanliga SQL-funktioner: En översikt

Vanliga SQL-funktioner: En översikt

Upptäck några vanliga SQL-funktioner som vi kan använda som sträng, datum och några avancerade funktioner för att bearbeta eller manipulera data.

LuckyTemplates Skapa mall: Guide och tips

LuckyTemplates Skapa mall: Guide och tips

I den här handledningen kommer du att lära dig hur du skapar din perfekta LuckyTemplates-mall som är konfigurerad efter dina behov och preferenser.

Fältparametrar och små multiplar i LuckyTemplates

Fältparametrar och små multiplar i LuckyTemplates

I den här bloggen kommer vi att visa hur man lager fältparametrar med små multiplar för att skapa otroligt användbara insikter och bilder.

LuckyTemplates Rank och anpassad gruppering

LuckyTemplates Rank och anpassad gruppering

I den här bloggen kommer du att lära dig hur du använder LuckyTemplates ranknings- och anpassade grupperingsfunktioner för att segmentera en exempeldata och rangordna den enligt kriterier.

Visar kumulativ total endast upp till ett visst datum i LuckyTemplates

Visar kumulativ total endast upp till ett visst datum i LuckyTemplates

I den här handledningen kommer jag att täcka en specifik teknik kring hur man visar Kumulativ total endast upp till ett specifikt datum i dina bilder i LuckyTemplates.

Punktdiagram: Avancerade anpassade bilder för LuckyTemplates

Punktdiagram: Avancerade anpassade bilder för LuckyTemplates

Lär dig hur du skapar och anpassar punktdiagram i LuckyTemplates, som huvudsakligen används för att mäta prestanda mot mål eller tidigare år.