PowerBI Performance-Optimierungen

Microsoft hat mit PowerBI ein sehr zugängliches Self-Service-BI Tool erschaffen. Je mehr Daten aber in einen Bericht geladen werden und je umfangreicher und komplexer die Darstellungen werden, desto öfters darf man PowerBI beim Laden zusehen.

Performance-Bremsen identifizieren

Die Ursache für langsame Berichte können verschiedene sein. PowerBI hält mit dem Performance-Analyzer eine Funktion bereit, welche hier weiterhilft.

 

Um genaue Resultate mit dem Performance-Analyzer zu erhalten, dürfen aber keine zwischengespeicherten Daten (Cache) vorhanden sein. Der Visual-Cache (zwischengespeicherte Darstellungen von Diagrammen) und der Daten-Cache (zwischengespeicherte Daten aus Abfragen) müssen leer sein. Der Visual-Cache wie auch der Daten-Cache werden beim Neustart von PowerBI neu aufgebaut.

Damit nun beim Öffnen des Berichts nicht bereits ein Cache aufgebaut wird, fügt man dem Bericht eine leere Berichtseite hinzu und speichert mit dieser aktiven Berichtseite, startet PowerBI neu und öffnet den Bericht wieder. Der Bericht öffnet mit der leeren Seite, womit noch kein Cache aufgebaut wird.

Jetzt kann der Performance-Analyzer gestartet werden und danach die zu untersuchende Berichtseite geöffnet werden. Der Analyzer wird nun jegliche Abfragen und Visuals messen. Ein Ergebnis kann dann wie folgt aussehen:

Die Zahlen rechts sind Milisekunden: das Visual mit der Karte von Zürich hat somit 9ms für die Datenabfrage benötigt (DAX query), fast 1,6s für die grafische Aufbereitung (Visual display) und über 2,5s wurden für die Abfragevorbereitung, das Warten auf andere Visuals oder sonstigen Hintergrundtasks benötigt (Other).

Performance-Probleme lösen

Visuals

Wenn die Visuals zu lange dauern, empfiehlt es sich die Auswahl und den Bedarf/Menge der Visuals zu überdenken. Bringt wirklich jedes Visual einen wirklichen Mehrwert für den Endanwender? Allenfalls kann die problematische Berichtseite auch auf mehrere Berichtseiten, auf Drill-Through-Seiten oder mittels Tooltip-Seiten restrukturiert werden.

 

DAX Abfragen

Wenn DAX query länger als 120ms dauern, sollte man diese angehen. Leider zeigt der Performance-Analyzer nicht das Problem in der Abfrage. Hier empfiehlt es sich in das DAX-Studio zu wechseln. Oft bringt der Einsatz anderer DAX-Funktionen hier eine Verbesserung.

 

Datenmodell

Das Problem kann aber ausserhalb der DAX-Möglichkeiten liegen: Das Datenmodell hinter dem PowerBI-Bericht kann ebenfalls der Grund für lange Ladezeiten sein. Grundsätzlich sollten keine Daten importiert werden, welche im Bericht nicht verwendet werden (Spalten wie Datensätze). Es sollte auf das Löschen von Spalten im Power Query Editor verzichtet werden und die Auswahl schon in der Datenquelle (DB-View oder Abfragen mit benannten Spalten, also kein “SELECT * FROM T_ORDERS”). Durch das Reduzieren der Datenmenge lädt der Bericht nicht nur schneller, auch wird die PBIX-Datei kleiner.

Auch die 'Auto date/time’-Funktion sollte nur aktiviert bleiben, wenn einfache Anforderungen an Abfragen über Zeit bestehen. Ansonsten sollte auf die automatische Datumstabellen-Erstellung von PowerBI verzichtet werden und diese mittels DAX selbst erstellt werden. Allenfalls bietet aber auch die Datenquelle selbst schon eine Datum-Dimensionstabelle.

 

Erfüllen Ihre PowerBI-Berichte Ihre Performance-Anforderungen? Die hier genannten Möglichkeiten zeigen die Grundlagen. Gerne helfen wir Ihnen bei komplexeren Analysen.

Autor: Adrian Bucher