PostgreSQL'de Uzun Süren Sorguları ve Idle in Transaction Oturumlarını Bulma
Bir dakikadan uzun süredir çalışan sorguları, bekleme olaylarını ve vacuum'u engelleyen idle in transaction oturumlarını listeler. Performans olaylarında ilk bakılacak script'tir.
SELECT pid, usename, datname, state,
now() - query_start AS query_age,
now() - xact_start AS xact_age,
wait_event_type, wait_event,
left(query, 200) AS query
FROM pg_stat_activity
WHERE pid <> pg_backend_pid()
AND state <> 'idle'
AND now() - query_start > interval '1 minute'
ORDER BY query_start;Not: `idle in transaction` oturumları vacuum'u engeller. Sonlandırmak için (yazma etkisi) `SELECT pg_cancel_backend(pid);`, olmazsa `pg_terminate_backend(pid)`.