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.
Denna handledning kommer att diskutera kontextövergång och kapslade iteratorer. Du kommer att lära dig vikten av dessa enheter och hur de kan vara en bra källa för optimering.
Om du kommer ihåg, sker kontextövergång när en radkontext ändras till en motsvarande filterkontext. Du måste vara medveten om vad som händer när en kontextövergång sker i dina iteratorer eftersom det ofta kan generera långsamma resultat.
Innehållsförteckning
Kapslade iteratorer kontra BERÄKNA
Om en kontextövergång anropas under en iteration skapas en materialiseringstabell. Detta innebär att kontextövergång anropas via formlerna i din DAX. Tabellen är okomprimerad data som skickas till formelmotorn.
För att demonstrera är det första måttet för stora försäljningar som får det aktuella priset om det är större än eller lika med 500.
Nästa mått är för genomsnittet av den stora försäljningen med kapslade iteratorer.
Det sista måttet får medelvärdet av stora försäljningar utan en kapslad iterator och ett CallBackDataID.
Kör måttet med den kapslade iteratorn. Se till att rensa cachen innan du kör och slå sedan på Server Timings och Query Plan.
Du kan se att den genererade 3 skanningar, 2 CallBackDataIDs och 15 003 rader. Detta är en anledning till oro eftersom det bara finns 101 rader för utdata. Detta hände eftersom måttet har två iteratorer eller X-funktioner.
Detta är den helt utökade formen av åtgärden som kördes:
Det itererar faktaförsäljningstabellen med. Det upprepas sedan igen med CallBackDataID med hjälp av. Det förkortade formatet för denna åtgärd har en underförståddfunktion som åberopar kontextövergång och materialiserar tabellen. Det är därför den drog 15 003 rader, även om det bara finns 101 rader för utmatning.
Kör det andra måttet som inte har kapslade iteratorer. Det upprepar fortfarande faktaförsäljningstabellen med AVERAGEX men det aktuella priset är utanför funktionen. Den filtrerar bort de produkter där det aktuella priset är större än eller lika med 500 och beräknar sedan genomsnittet.
Du kan se att den bara har 2 skanningar, 104 rader och inte har något CallBackDataID. Så om du använder CALCULATE kan du bli av med de kapslade iteratorerna och CallBackDataIDs .
Slutsats
Det finns många orsaker till en långsam presterande DAX. En av dem beror på kapslade iteratorer som orsakar onödiga kontextövergångar. Dessa iteratorer materialiserar fler rader än vad som behövs, vilket gör att dina frågor saktar ner.
Den bästa lösningen för detta är att placera den inuti BERÄKNA . Detta skapar mindre arbete för formelmotorn och maximerar lagringsmotorns kapacitet.
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.