PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come rilevare la query che mantiene il blocco in Postgres?

Dalla versione 9.6 è molto più semplice poiché ha introdotto la funzione pg_blocking_pids() per trovare le sessioni che stanno bloccando un'altra sessione.

Quindi puoi usare qualcosa del genere:

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;