Das Problem, das fast niemand sieht
Ein Report, der fünf Sekunden lädt statt einer, wirkt nicht nur unbequem. Er unterminiert die ganze Idee von Self-Service-Analytics. Nutzer greifen lieber zu Excel oder fragen Kolleg:innen, anstatt auf ein Dashboard zu warten. Und schnell wird aus dem durchdachten Datenmodell wieder ein Silo-System.
Wir sehen in vielen Unternehmen, dass Performance-Probleme nicht zufällig entstehen. Sie sind das Ergebnis von Entscheidungen, die beim Modelldesign getroffen wurden — oft unbewusst.
Wo die Geschwindigkeit verloren geht
Die häufigste Ursache liegt in der Struktur der Tabellen selbst. Wenn ein Datenmodell zu viele Dimensionen direkt miteinander verknüpft oder zu detailliert auf Row-Level-Security setzt, wächst die Abfragekomplexität exponentiell. Der Unterschied zwischen einem gut strukturierten und einem schlecht strukturierten Modell kann bei der gleichen Datenmenge den Faktor zehn ausmachen.
Ein anderes häufiges Problem sind unnötige Berechnungen. Viele Reports führen komplexe Aggregationen in Echtzeit durch, obwohl diese Werte vorab berechnet werden könnten. Besonders problematisch wird es, wenn mehrere Reports die gleiche teure Berechnung durchführen — dann verdoppelt oder verdreifacht sich der Aufwand sinnlos.
Auch die Datenmenge selbst ist ein Faktor, den man nicht ignorieren sollte. Ein Report, der auf hundert Millionen Zeilen aufgebaut ist, wird selbst mit optimalem Design langsamer sein als einer auf einer Million. Hier stellt sich die Frage: Brauchen wir wirklich diese Granularität?
Was man konkret prüfen sollte
Wir empfehlen, bei Performance-Problemen systematisch vorzugehen. Zunächst sollte man messen: Wie lange dauert der Report wirklich, und auf welcher Stufe wird es langsam? Ist es das Laden des Modells, die Abfrage selbst oder die Visualisierung?
Dann lohnt sich ein Blick auf die Tabellenstruktur. Oft zeigt sich, dass zu viele Dimensionen unnötig denormalisiert sind. Ein typisches Beispiel: Adressdaten werden in die Faktentabelle geschrieben, obwohl sie in einer separaten Kundendimension gehören. Das führt zu Datenverdopplung und langsamer Filterung.
Auch die Berechnung von Measures sollte überprüft werden. Wenn ein Maß komplexe Bedingungen enthält oder über mehrere Tabellen aggregiert, kann es schnell zum Bottleneck werden — vor allem, wenn der Report dieses Maß für viele Dimensionspunkte gleichzeitig berechnen muss.
Ein weiterer Check: Welche Filter sind wirklich nötig? Manche Reports laden alle Daten, filtern dann aber ohnehin auf eine kleine Teilmenge. Hier wäre ein Vorfilter im Modell selbst oder eine partitionierte Tabelle sinnvoller.
Die Lösung: Bewusst designen
Gute Performance entsteht nicht durch Zufall, sondern durch Entscheidungen. Das beginnt bei der Frage: Welche Granularität brauche ich wirklich? Oft reicht die Aggregation auf Tagesbasis statt auf Transaktionsbasis, die Fehlerquote sinkt aber deutlich.
Dann sollten häufig verwendete Berechnungen vorab durchgeführt werden. Das kann eine zusätzliche Tabelle im Datenmodell sein, in der wichtige Metriken täglich neu berechnet werden. Der Report greift dann auf diese vorberechneten Werte zu, nicht auf die Rohdaten.
Auch die Denormalisierung sollte bewusst eingesetzt werden. Nicht überall, aber dort, wo Dimensionen sehr häufig gefiltert werden, kann eine flachere Struktur Zeit sparen.
Und schließlich: regelmäßiges Monitoring. Ein Report, der heute schnell ist, kann morgen zum Laster werden, wenn sich die Datenmenge verdoppelt hat. Ein Auge auf die Entwicklung hilft, Probleme frühzeitig zu erkennen.
Was nicht hilft
Wir möchten auch klar sagen, was nicht hilft: Eine schnellere Infrastruktur löst Designprobleme nicht. Wer ein schlecht strukturiertes Modell auf bessere Server packt, kann die Performance vielleicht um 20 Prozent verbessern. Ein gut gestaltetes Modell auf der gleichen Hardware kann um 80 Prozent schneller sein.
Genau so führt das einfache Cachen aller Daten nicht zum Ziel. Das macht den Report zwar schneller, aber auch veralteter und weniger flexibel. Der Nutzer kann dann nicht mehr ad hoc filtern, ohne auf aktualisierte Daten zu warten.
Der praktische Weg
Ein gutes Datenmodell ist nicht kompliziert, sondern durchdacht. Es balanciert zwischen Speichereffizienz, Abfragegeschwindigkeit und Nutzerflexibilität. Diese Balance zu finden ist Arbeit, spart aber später Zeit und Frust ein.
Wenn Reports in euren Unternehmen langsam werden, lohnt sich ein genauerer Blick auf das Fundament — das Datenmodell selbst. Oft genug finden sich dort die echten Hebel.
Falls ihr euch unsicher seid, wo bei euren Reports die Performance-Probleme liegen oder wie man ein Modell besser strukturiert — wir helfen gerne, das herauszuarbeiten. Schreibt uns unter /kontakt, wir schauen uns die Situation an.