Neuerungen in PostgreSQL 8.4

Seite 3: Geschwindigkeit

Inhaltsverzeichnis

Bisher waren die beiden Parameter max_fsm_pages und max_fsm_relations eine Quelle für schlechte VACUUM-Performance, da die Default-Konfiguration beide Werte recht niedrig setzt. Für PostgreSQL 8.4 schrieben die Entwickler den Algorithmus der Free Space Map komplett um und ließen beide Parameter fallen. Den notwendigen Speicherplatz für die Verwaltung reserviert PostgreSQL dynamisch. Außerdem bilden diese Änderungen die Grundlage für ein Feature in einer späteren Version: Mit dem Code können sogenannte "visibility maps" abgebildet werden, die VACUUM wiederum genauer informieren, welche Dateiblöcke es überhaupt bearbeiten muss.

Eine komplette Datenbank kann der DBA mit PostgreSQL 8.4 auf einen anderen Tablespace verschieben:

ALTER DATABASE <datenbankname> SET
TABLESPACE <tablespace name>;

In der Datei pg_hba.conf dürfen statt Benutzernamen in Zukunft reguläre Ausdrücke stehen. Damit lassen sich zum Beispiel Benutzergruppen anhand einer Gruppenkennung im Namen erkennen. Das Neuladen von pg_hba.conf nach einer Änderung scheitert jetzt bei einem Fehler, und die alte Version bleibt aktiv. Wie bislang startet die Datenbank jedoch nicht, wenn die Datei bereits einen Fehler enthält.

Da SSL-Verbindungen jetzt auch Client-Zertifikate akzeptieren, ist beidseitige Authentifizierung und Verschlüsselung möglich. Der neue Konfigurationsparameter IntervalStyle erlaubt die Formatierung von Intervallen (das Ergebnis einer Operation mit zwei Zeiten) entsprechend dem SQL-Standard. Die Ausgabe ändert sich danach zum Beispiel von "377 days 19:03:00" oder "@ 377 days 19 hours 3 mins" in "377 19:03:00".

Als Contrib-Modul ist auto_explain hinzugekommen. Einmal geladen, schreibt es für jede Anfrage, die länger läuft als die in log_min_duration eingestellte Zeit, automatisch ein EXPLAIN in die Log-Datei. Das vereinfacht das Identifizieren und Analysieren langsamer Abfragen erheblich.