Hero imageMobile Hero image
  • LinkedIn
  • Facebook

November 05, 2019

Je hebt tijd gestoken in een gedetailleerd Power BI-rapport, dat is uitgegroeid tot het belangrijkste datapunt voor je team. Met steeds meer Excel- en CSV-bestanden toegevoegd, laadt het rapport echter traag en geven visualisaties en slicers regelmatig foutmeldingen. Hoe houd je jouw rapport snel en efficiënt?

Stel: je bent uren bezig geweest met het maken van een uitgebreide rapportage in Power BI. Het begon met het maken van wat grafieken in een bestaande Excel, maar inmiddels is jouw rapportage het centrale datapunt van jouw afdeling. Het ene na het andere Excel- of CSV-bestand wordt moeiteloos toegevoegd, maar je rapportage lijkt nu redelijk uit z’n voegen te barsten. Je koffie is koud tegen de tijd dat de eerste pagina is geladen en eenmaal ingeladen werken de visualisaties en slicers ook nog eens tergend traag. Ook bij het verversen van je data krijg je allerlei foutmeldingen om je oren. Wat te doen? Met deze 5 tips kun je jouw dashboard of rapportage een flinke boost geven!

Door: Daan Oosters

Less is better

Een van de eerste valkuilen van het maken van een Power BI-dashboard of rapportage is om zoveel mogelijk data naar binnen te halen en om zoveel mogelijk informatie te willen laten zien. Bij kleinere datasets zal dit niet direct tot problemen leiden, maar wanneer er sprake is van veel, grote of complexe gegevenssets wel. Voor iedere visual of slicer moet de achterliggende data geraadpleegd worden, wat voor veel vertraging kan zorgen. Wanneer er veel visuals en slicers in een rapport staan, vergt dat allemaal extra rekenkracht en dus laadtijd. Kijk dus kritisch bij de brondata welke data je daadwerkelijk wil gebruiken binnen je rapportage. Dat geldt ook voor de visuals en slicers in je rapportage. Beperk het aantal en houd ze zo eenvoudig mogelijk.

Gebruik tabbladen

Een zeer kenmerkende feature van Power BI is de mogelijkheid om tabbladen te gebruiken. Met deze tabbladen kun je rapportages maken met dezelfde eenvoud als het maken van een PowerPoint. Het voordeel van het gebruik van tabbladen is dat je informatie eenvoudig kunt verdelen op meerdere tabbladen, in plaats van alles op één overvolle pagina te zetten. Dit komt niet alleen performance, maar ook de overzichtelijkheid van je rapportage ten goede. Over het algemeen laadt een pagina met enkele visualisaties sneller dan een pagina met tientallen visualisaties. Ook het verdelen van de slicers over meerdere tabbladen kan de performance flink verbeteren. Bepaal goed welke informatie belangrijk genoeg is voor het eerste tabblad en verplaats de rest naar andere tabbladen. 

Slicers kosten rekenkracht

Hoewel de interactiviteit van Power BI wordt gezien als een van haar krachtigste features, kan deze interactiviteit tegelijkertijd een zware aanslag zijn op de snelheid van je rapportage. Zo veroorzaakt bijvoorbeeld Iedere slicer-selectie dat de achterliggende data van andere slicers en visuals op de pagina doorzocht moeten worden. Het gebruik van een visualisatie kan als filter voor de rest van je pagina, een trage rapportage nog trager maken. Houd hier rekening mee bij de inzet van deze features.

Skip de custom visuals

Custom visuals bieden ontwikkelaars de mogelijkheid zelf visuals te maken en deze te publiceren in de Marketplace van Microsoft. Daarmee zijn ze voor andere Power BI-users beschikbaar. Bovendien kunnen ze een goede verrijking zijn voor je rapportage. Deze custom visuals zijn alleen niet altijd de beste oplossing. Slecht ontworpen visuals kunnen de performance immers behoorlijk vertragen. Naast performance issues, kleven er ook nog de nodige beveiligings-, privacy- en juridische risico’s aan het gebruik hiervan. Het is hoe dan ook verstandig om kritisch naar deze custom visuals te kijken om te zien of deze de rapportage vertragen. Gelukkig zijn niet alle custom visuals boosdoeners. Microsoft heeft een aantal custom visuals Power BI Certified ontworpen die voldoen aan de door Microsoft opgelegde kwaliteitsstandaarden. Al is ook bij deze visuals een snelle performance niet gegarandeerd!

Efficiëntere data innemen

Naast de winst die valt te behalen bij het efficiënter maken van je rapporten, valt er ook winst te behalen bij het binnenhalen van de data. Een van de eigenschappen van de onderliggende tabular engine van Power BI, is dat deze een zogenaamde ‘Column Oriented Data Store’ heeft. Heel simpel gezegd betekent dit dat de engine per kolom kijkt naar de inhoud en niet vanuit rijen, zoals bij een relationele database. Hierdoor is het aantal kolommen en de inhoud van de kolommen de bepalende factoren van de verwerkingstijd en niet zozeer het aantal rijen. Met deze wetenschap zijn er een aantal aanpassingen die in overweging genomen kunnen worden om je dataset sneller te maken:

  • Beperk het aantal kolommen. Hoe minder kolommen er doorgespit hoeven te worden, hoe beter. Soms neigen we kolommen te behouden waarvan we denken ze later nog nodig te hebben, laat deze voor dit moment achterwege.
  • Zorg dat de inhoud van je data zo efficiënt of compact mogelijk is. Hoe meer verschillende (distinct) rijen een kolom bevat, hoe meer tijd de verwerking kost. 
  • Veel verschillende en lange tekstvelden in een kolom kosten veel verwerkingstijd. Probeer hier waar mogelijk slim mee om te gaan, bijvoorbeeld door deze om te zetten, te categoriseren of in te korten. 
  • In tegenstelling tot tekst zijn integers (getallen) veel sneller te verwerken. Probeer bijvoorbeeld om “Ja/Nee” of “Waar/Niet waar” om te zetten naar 0/1 waarden. Waarden als “Hoog/Gemiddeld/Laag” zou je om kunnen zetten naar 1, 2, 3. 
  • Let ook op het aantal decimalen dat je gebruikt. Als je rapporteert in miljoenen, hoeven je rijen geen 8 decimalen te bevatten. 
  • Ook onnodig lange datum/tijdnotaties in een kolom drukken de snelheid: Maak van één datum/tijdnotatie [2019-09-12 15:12:34.524], twee aparte kolommen, bijvoorbeeld [2019-09-12] en [15:12:34]. Dit verkleint het aantal distinct rijen in een kolom. Bedenk goed of je ‘tijd’ überhaupt nodig hebt.
  • Ook wanneer je wat meer gevorderd bent en zo nu en dan een DAX-formule gebruikt, is het goed om hier bewust en verstandig mee om te gaan. Wanneer je bijvoorbeeld de FILTER-functie gebruikt, wordt de tabel regel voor regel doorzocht. Hetzelfde geldt voor SUMX en RANKX. 
  • Tot slot kan het aanbieden van gesorteerde data de performance versnellen. Let op! Dit dient te gebeuren vóórdat het aangeboden wordt aan Power BI, dus niet in Power BI.

Er zijn veel tips en tricks om de performance van je Power BI-rapportage te verbeteren, maar het resultaat hiervan is veelal afhankelijk van gebruikersspecifieke omstandigheden. Zo kan het uitmaken of je data importeert middels de zogenaamde Import Mode of dat je direct queryt op de achterliggende database middels de Direct Query Mode. In het laatste geval kan een snelle of juist heel langzame database een grote stempel drukken op de performance. Wanneer jouw organisatie inmiddels heeft gekozen voor een modern dataplatform, dan zijn performance uitdagingen verleden tijd. De nieuwe dataplatformen schalen bij een goede inrichting mee met de rapportagebehoefte. Zo bedient het perfect de behoefte van eindgebruikers zonder dat upgrades van hardware of optimalisatie van rapporten nodig zijn. 

Meer informatie

Kortom, er zijn veel manieren om de performance van jouw rapportage te boosten. Dat is niet alleen fijn voor de adoptie van jouw rapportage, maar door de kortere wachttijden hoef je ook geen koude koffie meer te drinken!