9.6以降、関数pg_blocking_pids()
が導入されたため、これははるかに簡単です。 別のセッションをブロックしているセッションを見つけるため。
したがって、次のようなものを使用できます:
select pid,
usename,
pg_blocking_pids(pid) as blocked_by,
query as blocked_query
from pg_stat_activity
where cardinality(pg_blocking_pids(pid)) > 0;