PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment détecter la requête qui détient le verrou dans Postgres ?

Depuis la version 9.6, c'est beaucoup plus facile car elle a introduit la fonction pg_blocking_pids() pour trouver les sessions qui bloquent une autre session.

Vous pouvez donc utiliser quelque chose comme ceci :

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;