アクティブなクエリとブロックしているクエリを表示
PostgreSQLセッションコマンド
SELECT pid, usename, state, wait_event_type, wait_event, pg_blocking_pids(pid) AS blocking_pids, now() - query_start AS duration, left(query, 100) AS query FROM pg_stat_activity WHERE state <> 'idle' AND pid <> pg_backend_pid() ORDER BY duration DESC;概要
idle以外のすべてのバックエンド、それらをブロックしているPID、実行時間を一覧表示する。
使用する場面
ロック/ブロッキングの問題と長時間実行のクエリを診断するため。
注意
pg_blocking_pidsはPostgreSQL 9.6以降で使用可能。blocking_pids配列が空でない場合、それらのPIDがロックを保持している。必要に応じてそのPIDを取り消し/終了する。