Iterators en contextovergangen in DAX-querys

Iterators en contextovergangen in DAX-querys

In deze zelfstudie worden contextovergangen en geneste iterators besproken. U leert het belang van deze entiteiten en hoe ze een goede bron voor optimalisatie kunnen zijn.

Zoals u zich herinnert, vindt contextovergang plaats wanneer een rijcontext verandert in een equivalente filtercontext. U moet weten wat er gebeurt wanneer er een contextovergang plaatsvindt in uw iterators, omdat dit vaak trage resultaten kan opleveren.

Inhoudsopgave

Geneste iterators versus BEREKENEN

Als tijdens een iteratie een contextovergang wordt aangeroepen, wordt een materialisatietabel gemaakt. Dit betekent dat contextovergang wordt aangeroepen via de formules in uw DAX. De tabel bestaat uit niet-gecomprimeerde gegevens die naar de formule-engine worden verzonden.

Ter demonstratie: de eerste maatstaf is voor grote verkopen die de huidige prijs krijgen als deze groter is dan of gelijk is aan 500.

Iterators en contextovergangen in DAX-query's

De volgende maat is voor het gemiddelde van de Big Sales met geneste iterators.

Iterators en contextovergangen in DAX-query's

De laatste meting krijgt het gemiddelde van Big Sales zonder een geneste iterator en een CallBackDataID.

Iterators en contextovergangen in DAX-query's

Voer de meting uit met de geneste iterator. Zorg ervoor dat u de cache wist voordat u begint en schakel vervolgens het servertimings- en queryplan in.

Iterators en contextovergangen in DAX-query's

U kunt zien dat het 3 scans, 2 CallBackDataID's en 15.003 rijen heeft gegenereerd. Dit is zorgwekkend omdat er slechts 101 rijen zijn voor de uitvoer. Dit gebeurde omdat de meting twee iterators of X-functies heeft.

Dit is de volledig uitgebreide vorm van de uitgevoerde maatregel:

Iterators en contextovergangen in DAX-query's

Het itereert de Fact Sales-tabel met . Het herhaalt zich vervolgens opnieuw met de CallBackDataID met behulp van . Het verkorte formaat van deze meting heeft een impliciete functie die contextovergang aanroept en de tabel materialiseert. Daarom heeft het 15.003 rijen opgehaald, ook al zijn er maar 101 rijen voor uitvoer.

Voer de andere meting uit die geen geneste iterators heeft. Het herhaalt nog steeds de Fact Sales-tabel met behulp van AVERAGEX , maar de huidige prijs valt buiten de functie. Het filtert de producten uit waarvan de huidige prijs groter is dan of gelijk is aan 500 en berekent vervolgens het gemiddelde.

Iterators en contextovergangen in DAX-query's

U kunt zien dat het slechts 2 scans heeft, 104 rijen en geen CallBackDataID heeft. Dus als u CALCULATE gebruikt , kunt u de geneste iterators en CallBackDataID's verwijderen .


DAX-functies in LuckyTemplates: Iterators gebruiken
Een itererende functie gebruiken in LuckyTemplates
DAX-berekening – Contextovergangen filteren

Conclusie

Er zijn veel oorzaken voor een traag presterende DAX. Een daarvan is te wijten aan geneste iterators die onnodige contextovergangen veroorzaken. Deze iterators maken meer rijen dan nodig is, waardoor uw query's vertragen.

De beste oplossing hiervoor is om het binnen CALCULATE te plaatsen . Dit zorgt voor minder werk voor de formule-engine en maximaliseert de mogelijkheden van de opslag-engine.


Wat is zelf in Python: voorbeelden uit de echte wereld

Wat is zelf in Python: voorbeelden uit de echte wereld

Wat is zelf in Python: voorbeelden uit de echte wereld

Een RDS-bestand opslaan en laden in R

Een RDS-bestand opslaan en laden in R

Je leert hoe je objecten uit een .rds-bestand in R opslaat en laadt. In deze blog wordt ook besproken hoe je objecten uit R naar LuckyTemplates importeert.

First N Business Days Revisited – Een DAX-coderingstaaloplossing

First N Business Days Revisited – Een DAX-coderingstaaloplossing

In deze tutorial over DAX-coderingstaal leert u hoe u de functie GENERATE gebruikt en hoe u de titel van een maat dynamisch wijzigt.

Breng inzichten onder de aandacht met behulp van de Multi Threaded Dynamic Visuals-techniek in LuckyTemplates

Breng inzichten onder de aandacht met behulp van de Multi Threaded Dynamic Visuals-techniek in LuckyTemplates

Deze zelfstudie behandelt hoe u de Multi Threaded Dynamic Visuals-techniek kunt gebruiken om inzichten te creëren op basis van dynamische gegevensvisualisaties in uw rapporten.

Inleiding tot het filteren van context in LuckyTemplates

Inleiding tot het filteren van context in LuckyTemplates

In dit artikel zal ik de filtercontext doornemen. Filtercontext is een van de belangrijkste onderwerpen waarover elke LuckyTemplates-gebruiker in eerste instantie zou moeten leren.

Beste tips voor het gebruik van de apps in LuckyTemplates Online Service

Beste tips voor het gebruik van de apps in LuckyTemplates Online Service

Ik wil laten zien hoe de online service LuckyTemplates Apps kan helpen bij het beheren van verschillende rapporten en inzichten die uit verschillende bronnen zijn gegenereerd.

Analyseer winstmargeveranderingen in de loop van de tijd - analyse met LuckyTemplates en DAX

Analyseer winstmargeveranderingen in de loop van de tijd - analyse met LuckyTemplates en DAX

Leer hoe u wijzigingen in uw winstmarge kunt berekenen met behulp van technieken zoals vertakking van metingen en het combineren van DAX-formules in LuckyTemplates.

Materialisatie-ideeën voor gegevenscaches in DAX Studio

Materialisatie-ideeën voor gegevenscaches in DAX Studio

Deze tutorial bespreekt de ideeën van materialisatie van datacaches en hoe deze de prestaties van DAX beïnvloeden bij het leveren van resultaten.

Zakelijke rapportage met behulp van LuckyTemplates

Zakelijke rapportage met behulp van LuckyTemplates

Als u tot nu toe nog steeds Excel gebruikt, is dit het beste moment om LuckyTemplates te gaan gebruiken voor uw zakelijke rapportagebehoeften.

Wat is LuckyTemplates Gateway? Alles wat u moet weten

Wat is LuckyTemplates Gateway? Alles wat u moet weten

Wat is LuckyTemplates Gateway? Alles wat u moet weten