Goede prestaties op het gebied van laadtijd zijn belangrijk om gebruikersacceptatie te verbeteren en om vertrouwen te winnen bij stakeholders. Vandaar dat we in dit blog aandacht besteden aan methoden om laadtijden te verkleinen en prestaties van rapporten te verbeteren.

We richten ons in deze blog op de twee belangrijkste manieren om de prestaties van een PowerBI dashboard te verbeteren: Het datamodel en de visualisaties in het rapport.

Datamodel

Binnen een model wil je dat velden met een bepaald datatype altijd op dezelfde manier worden weergegeven. Met een simpel script kan bijvoorbeeld het formaat van alle datumvelden worden bepaald, kunnen alle percentages hetzelfde worden geformatteerd of alle currency velden met evenveel decimalen worden weergegeven. Hieronder is een voorbeeld te zien hoe je een vast datum formaat voor alle datumvelden kan realiseren.

 AfbeeldingBlog1

 

Model optimaliseren

Je wilt een Tabular Model altijd zo klein en schoon mogelijk houden. Door het gebruik van een aantal scripts en methoden kan je via Tabular Editor het datamodel versnellen. Een paar voorbeelden waar je aan kan denken zijn:

  • Velden die in relaties worden gebruikt, maar niet in visualisaties, op onzichtbaar zetten
  • Velden die in meetwaarden worden gebruikt, maar niet in visualisaties, onzichtbaar maken in het model
  • Velden die niet nodig zijn uit het model verwijderen

Sommaties

Bij het toevoegen van nieuwe tabellen of bij het toevoegen van aliassen (calculated tables) wordt de standaard sommatie van de velden op "Default" gezet. Dit betekent dat alle numerieke velden standaard worden gesommeerd. Dit kan natuurlijk ook in Tabular Editor zelf snel en simpel worden aangepast, maar met een script kan dat voor het hele model in een keer of alleen voor specifieke gevallen of bepaalde datatypen worden gedaan. 

AfbeeldingBlog3

Perspectieven

Perspectieven is een handige functionaliteit van een Tabular Model. Binnen een groot model kunnen perspectieven ervoor zorgen dat het model toch gebruiksvriendelijk en overzichtelijk voor de klant blijft (bijvoorbeeld Finance, Supply Chain). Bij het toevoegen van velden of het toevoegen van nieuwe dimensies wordt het updaten van de perspectieven vaak vergeten, waardoor deze niet meer compleet zijn en steeds lastiger te gebruiken voor de eindgebruikers. Een script die door de relaties van een model heen loopt en de tabellen aan de perspectieven toevoegt lost dit probleem op. 

Verder analyseren

Naast de bovengenoemde methodes kan je nog dieper naar je meetwaarden kijken hoe deze opgebouwd zijn. Zoals het bekende spreekwoord luidt: “leiden er meerdere wegen naar Rome’’. Zo werkt het ook in DAX-berekeningen. Maar niet alle berekeningen (“”wegen’’) zijn even effectief. De Performance analyzer in Power BI kan daarbij helpen. Dit hulpmiddel geeft namelijk exact weer hoe lang het duurt om elementen en visuals te laden.

AfbeeldingBlog4

AfbeeldingBlog5

Nadat je de pijnpunten gevonden hebt, kan je achterhalen welke meetwaarden voor verbetering vatbaar zijn. Met de DAX studio kan je vervolgens de berekeningen achter deze meetwaarden verder analyseren door te testen of andere DAX berekeningen om hetzelfde resultaat te bereiken beter werken. Het is goed om te weten dat DAX-studio als extensie/add-on in Power BI zit.

Met de Vertipaq Analyzer kan je in algemenere zin naar de data kan kijken. Hoe groot is de data binnen kolommen, hoe divers is een kolom en hoeveel rijen data bevat het.

AfbeeldingBlog6

AfbeeldingBlog7

Conclusie

In deze blog draag ik maar een paar mogelijkheden om de performance van een PowerBI dashboard te verbeteren. De script taal is enorm krachtig en biedt veel mogelijkheden om zaken in je model te automatiseren en uniform te maken. Met een aantal standaard scripts kan je al veel inregelen in verschillende modellen en word je veel werk uit handen genomen. Waar nodig kan je verder analyseren met tools als DAX-Studio en Vertipaq Analyzer wanneer bepaalde visuals voor trage rapporten zorgen. Voor meer informatie over hoe je een model kan optimaliseren: https://www.ensior.com/nl/blogs/blogs/1563-tabular-model-memory-optimaliseren

Ensior B.V. 2024 All rights reserved