Iteratorer og kontekstoverganger i DAX-spørringer

Denne opplæringen vil diskutere kontekstovergang og nestede iteratorer. Du vil lære viktigheten av disse enhetene og hvordan de kan være en god kilde for optimalisering.

Hvis du husker det, skjer kontekstovergang når en radkontekst endres til en ekvivalent filterkontekst. Du må være klar over hva som skjer når en kontekstovergang skjer i iteratorene dine, fordi det ofte kan generere langsomme resultater.

Innholdsfortegnelse

Nestede iteratorer versus BEREGN

Hvis en kontekstovergang påkalles under en iterasjon, opprettes en materialiseringstabell. Dette betyr at kontekstovergang påkalles via formlene i din DAX. Tabellen er ukomprimerte data som sendes til formelmotoren.

For å demonstrere er det første målet for store salg som får gjeldende pris hvis den er større enn eller lik 500.

Iteratorer og kontekstoverganger i DAX-spørringer

Det neste målet er gjennomsnittet av de store salgene med nestede iteratorer.

Iteratorer og kontekstoverganger i DAX-spørringer

Det siste målet får gjennomsnittet av store salg uten en nestet iterator og en CallBackDataID.

Iteratorer og kontekstoverganger i DAX-spørringer

Kjør målingen med den nestede iteratoren. Sørg for å tømme hurtigbufferen før du kjører, og slå deretter på Server Timings and Query Plan.

Iteratorer og kontekstoverganger i DAX-spørringer

Du kan se at den genererte 3 skanninger, 2 CallBackDataID-er og 15 003 rader. Dette er en grunn til bekymring fordi det bare er 101 rader for utgangen. Dette skjedde fordi målet har to iteratorer eller X-funksjoner.

Dette er den fullstendig utvidede formen for tiltaket som ble kjørt:

Iteratorer og kontekstoverganger i DAX-spørringer

Det itererer faktasalgstabellen med. Det gjentar seg deretter igjen med CallBackDataID ved hjelp av. Det forkortede formatet til dette tiltaket har en underforståttfunksjon som påkaller kontekstovergang og materialiserer tabellen. Det er derfor den trakk 15 003 rader, selv om det bare er 101 rader for utgang.

Kjør det andre målet som ikke har nestede iteratorer. Det gjentas fortsatt faktasalgstabellen ved å bruke AVERAGEX , men gjeldende pris er utenfor funksjonen. Den filtrerer ut produktene der gjeldende pris er større enn eller lik 500 og beregner deretter gjennomsnittet.

Iteratorer og kontekstoverganger i DAX-spørringer

Du kan se at den bare har 2 skanninger, 104 rader og ikke har CallBackDataID. Så hvis du bruker CALCULATE , kan du bli kvitt de nestede iteratorene og CallBackDataIDene .




Konklusjon

Det er mange årsaker til en saktegående DAX. En av dem skyldes nestede iteratorer som forårsaker unødvendige kontekstoverganger. Disse iteratorene materialiserer flere rader enn nødvendig, noe som fører til at søkene dine går langsommere.

Den beste løsningen for dette er å plassere den inne i CALCULATE . Dette skaper mindre arbeid for formelmotoren og maksimerer egenskapene til lagringsmotoren.


Variabler og uttrykk i Power Query Editor

Variabler og uttrykk i Power Query Editor

Denne opplæringen vil diskutere om variabler og uttrykk i Power Query Editor. Du lærer hvordan du skriver og bygger dem riktig.

Hvordan lage et Lucky Templates-varmekart

Hvordan lage et Lucky Templates-varmekart

Et LuckyTemplates-varmekart er en type visualisering som brukes til å vise datatetthet på et kart. I denne opplæringen vil jeg diskutere hvordan vi kan lage en – ikke gå glipp av noe!

Opprette et Pareto-diagram i LuckyTemplates – Avansert DAX

Opprette et Pareto-diagram i LuckyTemplates – Avansert DAX

Jeg skal lære deg et veldig interessant eksempel rundt Pareto-prinsippet og hvordan du lager et Pareto-diagram ved hjelp av viktige DAX-formler.

Egendefinert stolpediagram i LuckyTemplates: varianter og modifikasjoner

Egendefinert stolpediagram i LuckyTemplates: varianter og modifikasjoner

Lær hvordan et tilpasset stolpediagram på markedsplassen kan brukes til datasammenligning og hvordan du kan lage dem ved å bruke eksempler i LuckyTemplates.

Kraftautomatisering av statiske resultater: En oversikt

Kraftautomatisering av statiske resultater: En oversikt

Lær hvordan Power Automate Static Results-funksjonen fungerer og hvorfor det er bra å bli lagt til de beste praksisene når du lager flytdiagrammer.

LuckyTemplates Python-opplæring: Hvordan oversette tekster

LuckyTemplates Python-opplæring: Hvordan oversette tekster

eDNA demonstrerer hvordan du utfører språk- eller tekstoversettelse ved hjelp av Python og overfører det til LuckyTemplates. LuckyTemplates Python-opplæring.

Lag et Gantt-diagram i LuckyTemplates Report Builder

Lag et Gantt-diagram i LuckyTemplates Report Builder

I denne opplæringen lærer du hvordan du bruker Gauge Bullet Graph til å lage et Gantt-diagram i LuckyTemplates Report Builder.

Lag 3D-spredningsplott ved å bruke Python i LuckyTemplates

Lag 3D-spredningsplott ved å bruke Python i LuckyTemplates

I denne opplæringen lærer du hvordan du lager et tredimensjonalt (3D) spredningsplott ved å bruke Python i LuckyTemplates.

Effektiv LuckyTemplates-rapportering – øktgjennomgang og ressursnedlasting

Effektiv LuckyTemplates-rapportering – øktgjennomgang og ressursnedlasting

Effektiv LuckyTemplates-rapportering – øktgjennomgang og ressursnedlasting

Ny kundeanalyse med LuckyTemplates – Neste medlemsbegivenhet

Ny kundeanalyse med LuckyTemplates – Neste medlemsbegivenhet

Ny kundeanalyse med LuckyTemplates – Neste medlemsbegivenhet