3.3. Optimierung der Datenbankperformance
Die folgenden Hinweise sind nur relevant, sofern Sie
eine sehr große OCT Datenbank (>50 GB)
eine Datenbank mit sehr vielen Benutzern (> 100)
eine sehr berechnungsintensive Datenbank (eigene Stored Procedures, welches sehr oft sehr viel Daten bewegen)
nutzen wollen. In Standardszenarien läuft OCT mit einer “ganz normalen” SQL Datenbank
1. Last der Applikation im Vergleich zur Datenbank
OCT arbeitet sehr datenbanklastig - geben Sie immer so viel wie möglich Leistung der Datenbank. Die OCT Applikation ist ein genügsamer Dienst, er benötigt weit weniger Ressourcen.
2. Empfehlungen für die Datenbank im on-premises Betrieb
setzten Sie das Wiederherstellungsmodell der Datenbank auf Simple und führen Sie jede Nacht ein Full-Backup der Datenbank durch
Deaktivieren Sie Auto Shrink / Automatisches Verkleinern der Datenbank (Datenbankeigenschaften → Optionen) https://techyaz.com/sql-server/performance-tuning/always-turn-off-database-auto-shrink/
Im Betrieb der Datenbank werden folgende Dateien genutzt
die Datendatei
die Logdatei
die TempDB Dateien (überlicherweise so viele wie logische Prozessoren des Computers)
die Logdatei und die TempDB Dateien entscheiden über die Performance
legen Sie daher sofern möglich Logdatei und TempDB Dateien auf die schnellsten, möglichst getrennten SSD Platten
die Datendatei kommt auf die langsamste Platte
3. Empfehlungen für Stored Procedures
Messen Sie die Zeit pro logischem Schritt der Prozedur
Nutzen Sie temporäre Tabellen statt komplexe Views
Holen Sie Daten nur einmal
Joinen Sie über performante Felder
Setzen Sie Transaktionen nur wo notwendig ein und halten Sie deren Größe passend
Schreiben Sie gute temporäre Tabellen
geben Sie der temporären Tabelle einen Primärschlüssel
geben Sie der temporären Tabelle ggf. einen Index
lernen Sie den Ausführungsplan der Prozedur zu lesen
teilen Sie Daten zwischen Stored Procedures https://www.sommarskog.se/share_data.html
eine Unterprozedur kann immer die temporäre Tabelle der Hauptprozedur nutzen
Überwachen Sie die Größe der LogDatei
wird die Logdatei größer als Ihre Datendatei stimmt mit Ihrem SQL was nicht