Variabelen gebruiken om de prestaties en probleemoplossing te verbeteren
U kunt variabelen in uw DAX-formules gebruiken, zodat u minder complexe en efficiëntere berekeningen kunt opstellen. Variabelen worden onderbenut door ontwikkelaars die Power BI Desktop nog maar net gebruiken, maar ze zijn effectief en u moet ze standaard gebruiken wanneer u metingen maakt.
Bij sommige expressies wordt gebruikgemaakt van veel geneste functies en wordt de logica van de expressie opnieuw gebruikt. Het duurt langer om deze expressies te verwerken en ze zijn moeilijk te lezen, waardoor het moeilijker is om problemen op te lossen. Als u variabelen gebruikt, kunt u de verwerkingstijd voor query's reduceren. Deze wijziging is een stap in de juiste richting om de prestaties van een semantisch model te optimaliseren.
Het gebruik van variabelen in uw semantische model biedt de volgende voordelen:
Verbeterde prestaties: variabelen kunnen metingen efficiënter maken, omdat Power BI dan niet dezelfde expressie meerdere malen hoeft te evalueren. U kunt dezelfde resultaten voor een query realiseren in ongeveer de helft van de oorspronkelijke verwerkingstijd.
Verbeterde leesbaarheid: variabelen hebben korte, zelfbeschrijvende namen en worden gebruikt in plaats van een onduidelijke expressie die uit meerdere woorden bestaat. Mogelijk vindt u het gemakkelijker om de formules te lezen en te begrijpen wanneer er variabelen worden gebruikt.
Eenvoudige foutopsporing: u kunt variabelen gebruiken om fouten op te sporen in formules en expressies te testen. Dit kan handig zijn bij het oplossen van problemen.
Minder complexiteit: bij variabelen hoeven de DAX-functies EARLIER en EARLIEST, die moeilijk te begrijpen zijn, niet te worden gebruikt. Deze functies waren vereist voordat variabelen werden geïntroduceerd en werden opgesteld in complexe expressies waarin nieuwe filtercontexten werden gebruikt. Nu u variabelen kunt gebruiken in plaats van deze functies, kunt u minder complexe formules opstellen.
Variabelen gebruiken om de prestaties te verbeteren
Om te illustreren hoe u een variabele kunt gebruiken om een meting efficiënter te maken, wordt in de volgende tabel een metingdefinitie op twee verschillende manieren weergegeven. U ziet dat in de formule de expressie wordt herhaald waarmee 'dezelfde periode vorig jaar' wordt berekend, maar op twee verschillende manieren: in het eerste geval wordt de normale DAX-berekeningsmethode gebruikt en in het tweede geval worden variabelen gebruikt in de berekening.
In de tweede rij van de tabel ziet u de verbeterde metingdefinitie. Deze definitie maakt gebruik van het sleutelwoord VAR om een variabele met de naam SalesPriorYear te introduceren en gebruikt een expressie om het resultaat voor 'dezelfde periode vorig jaar' toe te wijzen aan die nieuwe variabele. Vervolgens wordt de variabele twee keer gebruikt in de DIVIDE-expressie.
Zonder variabele
Sales YoY Growth =
DIVIDE (
( [Sales] - CALCULATE ( [Sales], PARALLELPERIOD ( 'Date'[Date], -12, MONTH ) ) ),
CALCULATE ( [Sales], PARALLELPERIOD ( 'Date'[Date], -12, MONTH ) )
)
Met variabele
Sales YoY Growth =
VAR SalesPriorYear =
CALCULATE ( [Sales], PARALLELPERIOD ( 'Date'[Date], -12, MONTH ) )
VAR SalesVariance =
DIVIDE ( ( [Sales] - SalesPriorYear ), SalesPriorYear )
RETURN
SalesVariance
In de eerste definitie van de meting in de tabel is de formule inefficiënt, omdat hiervoor Power BI is vereist om dezelfde expressie tweemaal te evalueren. De tweede definitie is efficiënter omdat Power BI vanwege de variabele de PARALLELPERIOD-expressie slechts eenmaal hoeft te evalueren.
Als uw semantische model meerdere query's met meerdere metingen heeft, kan het gebruik van variabelen de totale verwerkingstijd voor query's halveeren en de algehele prestaties van het semantische model verbeteren. Bovendien is deze oplossing eenvoudig. Stelt u zich voor hoeveel u kunt besparen naarmate de formules ingewikkelder worden, wanneer u bijvoorbeeld te maken hebt met percentages en lopende totalen.
Variabelen gebruiken om de leesbaarheid te verbeteren
Naast betere prestaties hebt u misschien wel gezien dat de code beter leesbaar wordt door het gebruik van variabelen.
Wanneer u variabelen gebruikt, wordt het aangeraden om beschrijvende namen te gebruiken voor de variabelen. In het vorige voorbeeld heeft de variabele de naam SalesPriorYear. Deze naam geeft duidelijk aan wat de variabele berekent. Bedenk eens wat het resultaat zou zijn als u een variabele met de naam X, tijdelijk of variabele1 zou gebruiken; het doel van de variabele zou helemaal niet duidelijk zijn.
Door duidelijke, beknopte, beschrijvende namen te gebruiken, begrijpt u sneller wat u probeert te berekenen en is het veel eenvoudiger voor andere ontwikkelaars om het rapport in de toekomst te onderhouden.
Variabelen gebruiken om meerdere stappen op te lossen
U kunt variabelen gebruiken om u te helpen bij het opsporen van fouten in een formule en om te bepalen wat het probleem is. Met variabelen kunnen problemen met DAX-berekeningen eenvoudiger worden opgelost door elke variabele afzonderlijk te evalueren en door ze na de RETURN-expressie opnieuw aan te roepen.
In het volgende voorbeeld test u een expressie die is toegewezen aan een variabele. Als u fouten wilt opsporen, moet u de RETURN-expressie tijdelijk herschrijven om naar de variabele te schrijven. De metingdefinitie retourneert alleen de variabele SalesPriorYear , omdat dit na de RETURN-expressie komt.
Sales YoY Growth % =
VAR SalesPriorYear = CALCULATE([Sales], PARALLELPERIOD('Date'[Date], -12, MONTH))
VAR SalesPriorYear% = DIVIDE(([Sales] - SalesPriorYear), SalesPriorYear)
RETURN SalesPriorYear%
In de RETURN-expressie wordt alleen de waarde SalesPriorYear% weergegeven. Met deze techniek kunt u de expressie herstellen wanneer u de foutopsporing hebt voltooid. Berekeningen worden ook begrijpelijker vanwege de verminderde complexiteit van de DAX-code.