PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como detectar a consulta que mantém o bloqueio no Postgres?


Desde 9.6 isso é muito mais fácil, pois introduziu a função pg_blocking_pids() para encontrar as sessões que estão bloqueando outra sessão.

Então você pode usar algo assim:
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;