Iteratorer og kontekstovergange i DAX-forespørgsler

Denne øvelse vil diskutere kontekstovergang og indlejrede iteratorer. Du lærer vigtigheden af ​​disse enheder, og hvordan de kan være en god kilde til optimering.

Hvis du husker det, sker kontekstovergang, når en rækkekontekst ændres til en tilsvarende filterkontekst. Du skal være opmærksom på, hvad der sker, når der sker en kontekstovergang i dine iteratorer, fordi det ofte kan generere langsomme resultater.

Indholdsfortegnelse

Indlejrede iteratorer versus BEREGN

Hvis en kontekstovergang påkaldes under en iteration, oprettes en materialiseringstabel. Det betyder, at kontekstovergang påkaldes via formlerne i din DAX. Tabellen er ukomprimerede data, der sendes til formelmotoren.

For at demonstrere er det første mål for store salg, der får den aktuelle pris, hvis den er større end eller lig med 500.

Iteratorer og kontekstovergange i DAX-forespørgsler

Det næste mål er gennemsnittet af det store salg med indlejrede iteratorer.

Iteratorer og kontekstovergange i DAX-forespørgsler

Det sidste mål får gennemsnittet af Big Sales uden en indlejret iterator og et CallBackDataID.

Iteratorer og kontekstovergange i DAX-forespørgsler

Kør målingen med den indlejrede iterator. Sørg for at rydde cachen, før du kører, og slå derefter Server Timings og Query Plan til.

Iteratorer og kontekstovergange i DAX-forespørgsler

Du kan se, at den genererede 3 scanninger, 2 CallBackDataID'er og 15.003 rækker. Dette er en grund til bekymring, fordi der kun er 101 rækker til output. Dette skete, fordi målingen har to iteratorer eller X-funktioner.

Dette er den fuldt udvidede form for den foranstaltning, der blev kørt:

Iteratorer og kontekstovergange i DAX-forespørgsler

Det itererer Faktasalg-tabellen med. Det gentager derefter igen med CallBackDataID ved hjælp af. Det forkortede format af denne foranstaltning har en underforståetfunktion, der påkalder kontekstovergang og materialiserer tabellen. Derfor trak den 15.003 rækker, selvom der kun er 101 rækker til output.

Kør den anden måling, der ikke har indlejrede iteratorer. Det gentager stadig faktasalgstabellen ved hjælp af AVERAGEX , men den aktuelle pris er uden for funktionen. Den filtrerer de produkter fra, hvor den aktuelle pris er større end eller lig med 500, og beregner derefter gennemsnittet.

Iteratorer og kontekstovergange i DAX-forespørgsler

Du kan se, at den kun har 2 scanninger, 104 rækker og ikke har et CallBackDataID. Så hvis du bruger CALCULATE , kan du slippe af med de indlejrede iteratorer og CallBackDataID'er .




Konklusion

Der er mange årsager til en langsom ydende DAX. En af dem skyldes indlejrede iteratorer, som forårsager unødvendige kontekstovergange. Disse iteratorer materialiserer flere rækker end nødvendigt, hvilket får dine forespørgsler til at blive langsommere.

Den bedste løsning til dette er at placere den inde i CALCULATE . Dette skaber mindre arbejde for formelmotoren og maksimerer lagermotorens muligheder.

Leave a Comment

Oplev unik indsigt ved hjælp af LuckyTemplates TOPN-funktion

Oplev unik indsigt ved hjælp af LuckyTemplates TOPN-funktion

Denne blog indeholder LuckyTemplates TOPN DAX-funktionen, som giver dig mulighed for at få unik indsigt fra dine data, hvilket hjælper dig med at træffe bedre markedsføringsbeslutninger.

Oprettelse af en datotabel i LuckyTemplates

Oprettelse af en datotabel i LuckyTemplates

Find ud af, hvorfor det er vigtigt at have en dedikeret datotabel i LuckyTemplates, og lær den hurtigste og mest effektive måde at gøre det på.

LuckyTemplates Mobile Reporting Tips og teknikker

LuckyTemplates Mobile Reporting Tips og teknikker

Denne korte vejledning fremhæver LuckyTemplates mobilrapporteringsfunktion. Jeg vil vise dig, hvordan du kan udvikle rapporter effektivt til mobilenheder.

Professionelle serviceanalyserapporter i LuckyTemplates

Professionelle serviceanalyserapporter i LuckyTemplates

I denne LuckyTemplates Showcase gennemgår vi rapporter, der viser professionel serviceanalyse fra et firma, der har flere kontrakter og kundeengagementer.

Microsoft Power Platform-opdateringer | Microsoft Ignite 2021

Microsoft Power Platform-opdateringer | Microsoft Ignite 2021

Gå gennem de vigtigste opdateringer til Power Apps og Power Automate og deres fordele og implikationer for Microsoft Power Platform.

Almindelige SQL-funktioner: En oversigt

Almindelige SQL-funktioner: En oversigt

Opdag nogle almindelige SQL-funktioner, som vi kan bruge, såsom streng, dato og nogle avancerede funktioner til at behandle eller manipulere data.

LuckyTemplates skabelonoprettelse: Guide og tips

LuckyTemplates skabelonoprettelse: Guide og tips

I denne tutorial lærer du, hvordan du opretter din perfekte LuckyTemplates-skabelon, der er konfigureret til dine behov og præferencer.

Feltparametre og små multipler i LuckyTemplates

Feltparametre og små multipler i LuckyTemplates

I denne blog vil vi demonstrere, hvordan man lagdelte feltparametre med små multipler for at skabe utrolig nyttig indsigt og visuals.

LuckyTemplates-rangering og brugerdefineret gruppering

LuckyTemplates-rangering og brugerdefineret gruppering

I denne blog vil du lære, hvordan du bruger LuckyTemplates rangerings- og brugerdefinerede grupperingsfunktioner til at segmentere et eksempeldata og rangordne det efter kriterier.

Viser kun kumulativ total op til en bestemt dato i LuckyTemplates

Viser kun kumulativ total op til en bestemt dato i LuckyTemplates

I denne tutorial vil jeg dække en specifik teknik omkring, hvordan du kun viser Kumulativ Total op til en bestemt dato i dine visuals i LuckyTemplates.