Vad är Power Query & M Language: En detaljerad översikt
Denna handledning ger en översikt över Power Query Editor och M-språket på LuckyTemplates-skrivbordet.
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:
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.
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.
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.
Denna handledning ger en översikt över Power Query Editor och M-språket på LuckyTemplates-skrivbordet.
Lär dig hur du skapar en sidnumrerad rapport, lägger till texter och bilder och sedan exporterar din rapport till olika dokumentformat.
Lär dig hur du använder SharePoint-automatiseringsfunktionen för att skapa arbetsflöden och hjälpa dig att mikrohantera SharePoint-användare, bibliotek och listor.
Finslipa dina färdigheter i rapportutveckling genom att gå med i en dataanalysutmaning. Acceleratorn kan hjälpa dig att bli en LuckyTemplates superanvändare!
Lär dig hur du beräknar löpande summor i LuckyTemplates med DAX. Löpande summor låter dig inte fastna i ett individuellt resultat.
Förstå konceptet med variabler i DAX inom LuckyTemplates och konsekvenserna av variabler för hur dina mått beräknas.
Lär dig mer om den anpassade visual som kallas LuckyTemplates Slope-diagram, som används för att visa ökning/minskning för en enstaka eller flera mätvärden.
Upptäck färgteman i LuckyTemplates. Dessa är viktiga för att dina rapporter och visualiseringar ska se ut och fungera sömlöst.
Att beräkna ett genomsnitt i LuckyTemplates kan göras på många sätt för att ge dig exakt information för dina affärsrapporter.
Låt oss fördjupa oss i Standard LuckyTemplates-teman och granska några av funktionerna som är inbyggda i själva LuckyTemplates Desktop-applikationen.