Tuning (Datenbank)
# Tuning (Datenbank)

Unter Tuning versteht man die Feinabstimmung von Parametern einer Datenbank-Installation oder beeinflussbarer Eigenschaften einer Datenbankanwendung mit dem Ziel einer Performance-Verbesserung oder einer Verbesserung des Datendurchsatzes der Datenbank.

Ein Tuning der Datenbankinstallation ist deshalb möglich und oftmals notwendig, weil Datenbank-Management-Systeme (DBMS) meistens eine enorme, schwer übersehbare Vielfalt an Installations- und Betriebsoptionen anbieten. So kann z. B. eingestellt werden, welche Teile welcher Datenbanktabellen in welchen Speicherbereichen physisch abgelegt werden. Ferner können Puffer-Größen, das Verhalten der Datenbank bezüglich noch nicht freigegebener Datenänderungen (siehe Transaktion), Index-Arten und vieles mehr gezielt beeinflusst werden. Es ist offensichtlich, dass derartige Einstellungen die Performance beeinflussen.

Ein Datenbank-Tuning wird meistens von hochqualifizierten Spezialisten vorgenommen und ist eine sehr kostenintensive Maßnahme mit schwer vorhersehbaren Ergebnissen. Oftmals lassen sich vergleichbare Verbesserungen mit Hardware-Erweiterungen kostengünstiger erreichen. Deshalb beschränkt sich das Tuning oft auf wenige, einfache Maßnahmen bzw. auf High-End-Anwendungen.

Alternativ besteht die Möglichkeit, nicht die Datenbank-Installation, sondern das Datenmodell zu optimieren. Typisch hierfür ist die Denormalisierung. Dabei werden die Strukturen abweichend von der logischen Idealstruktur so verändert, dass die real benötigten SQL-Zugriffe auf weniger Datenbanktabellen zugreifen müssen und folglich erheblich schneller werden. Durch eine Optimierung der Datenstrukturen lassen sich in der Regel wesentlich größere Performanceverbesserungen erreichen, allerdings mit dem Nachteil, dass dies häufig eine Änderung der bereits fertiggestellten Programme erfordert. Durch die Verwendung von Views kann aber die Datenstruktur auf Anwendungsebene in vielen Fällen beibehalten werden.

Ein nochmals deutlich größeres Potential für Performanceverbesserungen bietet jedoch das Tuning auf Anwendungsebene: Während durch Hardware-Erweiterungen und Tuning der Datenbankinstallation durchschnittlich eine Verdoppelung und durch Optimierung des Datenmodelles durchaus auch eine Verzehnfachung der Performance erreicht werden kann, lässt sich durch den Wechsel des Algorithmus der Anwendung diese häufig um mehrere Größenordnungen beschleunigen, falls die Performance bei deren Entwurf kein Designziel war.

## Möglichkeiten des Tunings von Zugriffsmechanismen

* Clustering
* Hashing
* Indexierung
* Scanning
