PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie erkennt man eine Abfrage, die die Sperre in Postgres hält?

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;