Postgresql Performance

PostgreSQL ist das am weitesten entwickelte Open Source-Datenbanksystem. Es ist flexibel und erweiterbar und kann an die verschiedensten Anforderungen angepasst werden.

In seiner Standardkonfiguration ist PostgreSQL nicht auf Geschwindigkeit getrimmt, sondern so eingestellt, dass es auf möglichst vielen Systemkonfigurationen auch mit low end-Hardware lauffähig ist.

Flexibilität und Erweiterbarkeit haben den Preis, dass die Konfiguration an die jeweiligen Erfordernisse und Bedingungen anzupassen ist, um optimale Ergebnisse zu erhalten.

Optimierung umfasst zwei Bereiche

  • Die Optimierung der Anwendung
    Das betrifft das Design der Datenbank, den Einsatz von Indexen, die Analyse und Optimierung von Abfragen, sowie administrative Aufgaben wie etwa die Reorganisation der Datenbank. In diesem Bereich liegen die größten Potenziale für Performanceverbesserungen.
  • Die optimale Anpassung / Nutzung der Systemressourcen
    Mit den Einstellungen in der Konfigurationsdatei postgresql.conf kann PostgreSQL an die jeweilige Systemumgebung angepasst werden. Allgemein wird davon ausgegangen, dass in diesem Bereich maximal ein Drittel bis ein Viertel zur Performancesteigerung beiträgt.

Datenbanken unterscheiden sich nicht nur im Design sondern auch in den Anforderungen, die an sie gestellt werden:

  • im Arbeitspensum (workload)
  • in der Anzahl der gleichzeitig zugreifenden Benutzer
  • in der Art der Zugriffe

Bei so unterschiedlichen Voraussetzungen und den vielfältigen Möglichkeiten zur Erweiterung und Anpassung, ist es unmöglich, eine Konfiguration zur Verfügung zu stellen, die allen Anforderungen gleichermaßen gerecht wird. So unterschiedlich die Anforderungen an das System sind, so unterschiedlich sind die Maßnahmen zur Optimierung. Das alles macht Performance-Tuning zu einem sehr komplexen Prozess.

Die Hoffnung, das Thema *Performance Tuning* mit ein paar Änderungen in der Konfigurationsdatei erledigen zu können, ist vollkommen unbegründet. Ebensowenig erfolgversprechend sind die beliebten Allheilmittel: schnellere CPU und mehr Speicher. Sie schaffen nur scheinbar Abhilfe, denn ein nachteiliges Datenbankdesign bleibt auch mit reichlich Speicher problematisch und entsprechend formulierte Abfragen werden mit einer leistungsfähigeren CPU nicht besser.