PostgreSQL 数据库中查找阻塞和被阻塞的进程
    		       		warning:
    		            这篇文章距离上次修改已过427天,其中的内容可能已经有所变动。
    		        
        		                
                在PostgreSQL中,您可以使用以下SQL查询来查找阻塞和被阻塞的进程:
查询阻塞的进程:
SELECT pid, query, state, usename, datname
FROM pg_catalog.pg_stat_activity
WHERE state = 'active' AND wait_event_type = 'Lock';查询被阻塞的进程:
SELECT a.pid AS blocked_pid, a.query AS blocked_query, a.state AS blocked_state, a.usename AS blocked_user, a.datname AS blocked_db,
       b.pid AS blocking_pid, b.query AS blocking_query, b.usename AS blocking_user
FROM pg_catalog.pg_stat_activity a
JOIN pg_catalog.pg_stat_activity b ON a.blocked_by = b.pid
WHERE a.state = 'active';这些查询会返回当前数据库中阻塞和被阻塞的进程信息,包括进程ID (pid)、正在执行的查询 (query)、用户名 (usename) 和数据库名 (datname)。如果需要更详细的信息,可以根据pg_catalog.pg_stat_activity视图中的其他列进行扩展。
评论已关闭