Sobes.tech
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.