PostgreSQL - Performance Tuning und Troubleshooting
Dieser Kurs richtet sich an Administratoren, die Leistungsengpässe in PostgreSQL systematisch analysieren und beheben müssen. Die Teilnehmer lernen, Speicherparameter anzupassen, Abfragepläne zu entschlüsseln und Indizes einzusetzen.
Kursinhalt
Speicher- und Ressourcen-Tuning
Optimierung von shared_buffers für den Daten-Cache
Einstellung von work_mem zur Vermeidung von Platten-Sortierungen
Konfiguration von maintenance_work_mem für Wartungsaufgaben
Write-Ahead-Log (WAL) Tuning
Einfluss von max_wal_size und min_wal_size auf Checkpoints
Optimierung der Checkpoint-Abstände zur I/O-Entlastung
Einsatz von wal_buffers für optimierte Schreibvorgänge
Abfragepläne analysieren mit EXPLAIN
Lesen von Abfrageplänen und Kostenabschätzungen
Ermittlung realer Laufzeiten mit EXPLAIN ANALYZE
Unterscheidung von Sequential Scans und Index Scans
Fortgeschrittene Indizierung
Einsatz von partiellen Indizes für gefilterte Datenmengen
Erstellung funktionaler Indizes auf berechneten Spalten
Nutzung von Composite Indizes und deren Spaltenreihenfolge
Spezielle Indextypen
Einsatz von GIN-Indizes für JSONB- und Volltextsuche
Verwendung von GiST-Indizes für geometrische Daten
Abgrenzung zu BRIN-Indizes für sehr große, sortierte Tabellen
Systemstatistiken aktivieren und nutzen
Einführung und Konfiguration von pg_stat_statements
Auffinden der ressourcenintensivsten Abfragen
Nutzung der System-Views zur Analyse von Tabellen- und Indexzugriffen
Locking und Blockierungen diagnostizieren
Erkennung blockierender Abfragen über pg_stat_activity
Analyse von Zeilen- und Tabellensperren
Einsatz von Deadlock-Erkennung und Konfiguration von Timeouts
MVCC und Bloat-Optimierung
Messung von Tabellen- und Index-Bloat
Feinabstimmung des Autovacuum-Prozesses auf Tabellenebene
Einsatz von Tools zur Online-Defragmentierung
Verbindungspooling (Connection Pooling)
Verständnis des Overhead-Problems bei zu vielen Verbindungen
Konfiguration von Verbindungspools mit PgBouncer
Optimierung der max_connections-Einstellungen im Server
Betriebssystem-Tuning für PostgreSQL
Anpassung der Linux-Kernel-Parameter (Dirty Pages, Huge Pages)
Optimierung des Dateisystem-Caches und Swappiness-Verhalten
Auswahl und Konfiguration des optimalen I/O-Schedulers
Anforderungen
Ziel
zzgl. MwSt.