PostgreSQL ANALYZE
Der Befehl `ANALYZE` in PostgreSQL sammelt Statistiken über den Inhalt der Tabellen in der Datenbank. Diese Statistiken werden vom Query Planner verwendet, um effiziente Ausführungspläne für Abfragen zu erstellen.
Verwendung
Der Befehl `ANALYZE` wird verwendet, um die Statistiken in der Datenbank zu aktualisieren, um die Leistung der Abfrageausführung zu verbessern. Sie kann auf bestimmte Tabellen, bestimmte Spalten oder die gesamte Datenbank angewendet werden.
ANALYZE [VERBOSE] [table_name [ (column_name [, ...] ) ] ];
In dieser Syntax aktualisiert `ANALYZE Tabellenname` die Statistiken für die angegebene Tabelle, während `ANALYZE` ohne Argumente alle Tabellen in der aktuellen Datenbank verarbeitet. Die Option "VERBOSE" liefert eine detaillierte Ausgabe.
Hinweis: Der Befehl `ANALYZE` wird automatisch vom Autovacuum-Daemon ausgeführt, der in PostgreSQL standardmäßig aktiviert ist. Das reduziert die Notwendigkeit der manuellen Ausführung von `ANALYZE` unter normalen Umständen.
Beispiele
1. Analysieren der gesamten Datenbank
ANALYZE;
Mit diesem Befehl werden die Statistiken für alle Tabellen in der aktuellen Datenbank aktualisiert, damit der Abfrageplaner über aktuelle Informationen für die Optimierung verfügt.
2. Analysieren einer bestimmten Tabelle
ANALYZE employees;
Hier werden die Statistiken für die Tabelle "Mitarbeiter" aktualisiert, was zu einer effizienteren Ausführung von Abfragen über diese Tabelle führen kann.
3. Analysieren bestimmter Spalten
ANALYZE customers (first_name, last_name);
In diesem Beispiel werden die Statistiken nur für die Spalten "Vorname" und "Nachname" in der Tabelle "Kunden" aktualisiert, was nützlich ist, wenn Abfragen häufig nach diesen Spalten filtern oder sortieren.
Tipps und bewährte Praktiken
- Regelmäßige Wartung. Führe `ANALYZE` regelmäßig aus, insbesondere nach größeren Datenänderungen, um eine optimale Abfrageleistung zu erhalten. Wenn jedoch Autovakuum aktiviert ist, kann die manuelle Ausführung überflüssig sein.
- Verwendung mit `VACUUM`. Kombiniere `ANALYZE` mit `VACUUM`, um in einem einzigen Wartungsvorgang Speicherplatz zurückzugewinnen und Statistiken zu aktualisieren.
- Automatisiere mit Autovacuum. Aktiviere den Autovacuum-Daemon, damit er automatisch `ANALYZE`-Aufgaben für Tabellen durchführt, damit du nicht mehr manuell eingreifen musst.
- Zielgebiete mit hoher Auswirkung. Konzentriere dich auf Tabellen und Spalten, die häufig abgefragt werden oder an denen wesentliche Änderungen vorgenommen wurden, um die Leistung gezielt zu verbessern.
- Statistik überwachen. Mit der Ansicht `pg_stats` kannst du die aktuellen Statistiken für eine Tabelle oder Spalte überprüfen und so einen Einblick in die vom Abfrageplaner verwendeten Daten erhalten.
Leistungshinweis: Die Ausführung von `ANALYZE` kann die E/A-Last erhöhen, was die Leistung während der Ausführung vorübergehend beeinträchtigen kann, insbesondere bei großen Tabellen. Plane die Ausführung, wenn nötig, außerhalb der Hauptverkehrszeiten.