PostgreSQL死锁进程及慢查询处理

1、死锁进程查看:

SELECT * FROM pg_stat_activity WHERE datname='数据库名称' and waiting=true;

pid 进程id。

2、慢查询sql:

select datname,pid,usename,application_name,client_addr,client_port,xact_start,query_start,state_change,waiting,state,backend_xid,backend_xmin,query,Now()-xact_start from pg_stat_activity where state<>'idle' and (backend_xid is not null or backend_xmin is not null) order by Now()-xact_start;

Now()-xact_start 是指事务截至当前已运行时间。
Now() - query_start query 截至当前已运行时间。
pid 进程ID。
query 慢查询sql,可explian分析下具体原因。

3、查询是否锁表

select oid from pg_class where relname='可能锁表了的表'
select pid from pg_locks where relation='上面查出的oid'

4、结束异常进程:

select pg_cancel_backend(上面查到的pid)

相关文章

项目需要,有个数据需要导入,拿到手一开始以为是mysql,结果...
本文小编为大家详细介绍“怎么查看PostgreSQL数据库中所有表...
错误现象问题原因这是在远程连接时pg_hba.conf文件没有配置正...
因本地资源有限,在公共测试环境搭建了PGsql环境,从数据库本...
wamp 环境 这个提示就是说你的版本低于10了。 先打印ph...
psycopg2.OperationalError: SSL SYSCALL error: EOF detect...