Seit 9.6 ist dies viel einfacher, da es die Funktion pg_blocking_pids()
eingeführt hat um die Sitzungen zu finden, die eine andere Sitzung blockieren.
Sie können also so etwas verwenden:
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;