Aktif ve bloklayan sorguları gör
PostgreSQLOturumKomut
SELECT pid, usename, state, wait_event_type, wait_event, pg_blocking_pids(pid) AS blocklayan_pidler, now() - query_start AS sure, left(query, 100) AS sorgu FROM pg_stat_activity WHERE state <> 'idle' AND pid <> pg_backend_pid() ORDER BY sure DESC;Ne yapar?
Boşta olmayan tüm backend'leri, hangi PID'ler tarafından bloklandıklarını ve ne kadar süredir çalıştıklarını listeler.
Ne zaman kullanılır?
Kilitlenme/blocking sorunlarını ve uzun süren sorguları teşhis etmek için.
Dikkat
pg_blocking_pids PostgreSQL 9.6+ ile gelir. blocklayan_pidler dizisi doluysa oradaki PID'ler lock'u tutuyordur; gerekirse o PID'yi iptal/sonlandır.
İlgili
- Backend'i sonlandır (pg_terminate_backend)
- Çalışan sorguyu iptal et (pg_cancel_backend)
- Blocking ağacını çıkar (kök bloklayan oturumu bul)
- Bekleyen lock'ları nesne ve lock modu düzeyinde ayrıntılı gör (pg_locks)
- Uzun süren ve 'idle in transaction' kalan transaction'ları bul
- Uzun süre 'idle in transaction' bekleyen oturumları toplu ve kontrollü sonlandır