Devlog #3: Erste Optimierungen der Statistiken

19.05.2026 21:21
Author: admin
Category: Devlog
Tags: Info
Ein erfolgreicher Tag der Optimierungen liegt hinter dem Projekt! Ein wesentlicher Punkt, der mich an den Statistiken gestört hatte, waren die relativ langen Ladezeiten, vor allem auf der "Overview" Seite. Ich habe mich zunächst im Profiling geübt und versucht, die Gründe dafür näher zu identifizieren, und konnte schnell feststellen, dass die Abfragen an die Datenbank den Großteil der Ladezeit ausgemacht haben. Insofern stand vor allem die Optimierung der Datenbankabfragen auf dem Plan.  

So war der Stand vor dem radikalen Umbau der Statistiken, welche aus sehr vielen einzelnen Abfragen bestanden haben: 

37 Database Queries, 2894.66 ms Query time
3246 ms Total execution time, 86 ms Symfony initialization
20.00 MiB Peak memory usage

Ich habe viele einzelne und redundante Datenbankabfragen zusammengeführt, sodass große Statistikdaten nicht mehr mehrfach unnötig aus der Projektionstabelle gelesen werden müssen. Außerdem wurde die bisherige künstliche Datumsgrenze in den Abfragen entfernt, damit Abfragen ohne spezifischen Zeitraum sauberer und effizienter funktionieren. Zusätzlich wurden Materialized Views eingeführt, um häufig benötigte Übersichten wie Krankenhaus-, Bereichs- und Scope-Daten vorberechnet zu speichern. Dadurch müssen bestimmte komplexe Aggregationen beim Aufruf der Seite nicht mehr live über Millionen Datensätze erzeugt werden. Zusätzlich wurden die Dashboard-Metriken in zentrale Query-Klassen ausgelagert und gebündelt, sodass wichtige Kennzahlen wie Summen, Geschlechterverteilungen oder Dringlichkeitsverteilungen in deutlich weniger Datenbankzugriffen geladen werden. 

Und das Ergebnis kann sich sehen lassen:

27 Database Queries, 556.87 ms Query time
816 ms Total execution time, 33 ms Symfony initialization
10.00 MiB Peak memory usage

Durch meine Maßnahmen konnte die Dauer der Datenbankabfragen um knapp 80 % reduziert werden und die Ladezeit fällt so kaum noch ins Gewicht. Ein riesiger Schritt nach vorn! 🥳

Comments

no comments
Please sign in to leave a comment. Login

Feedback