Junior — Middle
Wie erkennt und analysiert man eine lang laufende Abfrage in PostgreSQL?
sobes.tech KI
Antwort von AI
Um lang laufende Abfragen in PostgreSQL zu erkennen, kann die Systemansicht pg_stat_activity verwendet werden, die die aktuellen aktiven Abfragen und ihre Ausführungszeit anzeigt. Zum Beispiel ermöglicht die folgende Abfrage:
SELECT pid, now() - query_start AS duration, query
FROM pg_stat_activity
WHERE state = 'active'
ORDER BY duration DESC
LIMIT 5;
die 5 längsten aktiven Abfragen zu sehen.
Für eine tiefere Analyse kann die Protokollierung langsamer Abfragen in postgresql.conf aktiviert werden:
log_min_duration_statement = 1000 # Protokollierung von Abfragen, die länger als 1000 ms dauern
Danach werden alle Abfragen, die diese Zeit überschreiten, in den Logs aufgezeichnet.
Es ist auch hilfreich, Profiling-Tools und EXPLAIN ANALYZE zu verwenden, um den Ausführungsplan bestimmter Abfragen zu analysieren und Engpässe zu erkennen.