postgresl 操作视图长时间未响应
起因
删除视图长时间没有反应
原因
事务操作视图中的表未结束,导致视图无法删除
解决办法
查询进程id
SELECT * from pg_stat_activity ; SELECT T.PID, T.STATE, T.QUERY, T.WAIT_EVENT_TYPE, T.WAIT_EVENT, T.QUERY_START from PG_STAT_ACTIVITY T where T.DATNAME = '{DATNAME}' and T.WAIT_EVENT_TYPE = 'Lock'; DATNAME 数据库名字 WAIT_EVENT_TYPE 事件类型 Lock为锁住等待事务结束后执行
杀死占用进程
select pg_cancel_backend('{pid}');
查询死锁进程
select * from pg_locks where not granted;
附加
- psql 连接中的几种状态
状态 | 说明 |
---|---|
Active(活动) | 进程正在执行某个语句 |
Idle(空闲) | 进程正在等待客户端的指令 |
idle in transaction(事务空闲) | 进程在处理事务的过程中,但当前没有执行任何语句 |
idle in transaction (aborted)(事务空闲-退出) | 除了事务中声明一个错误外,其余情况与idle in transaction相同 |
fastpath function call(快速通道函数调用) | 后台正在执行某个快速通道函数 |
Disabled(禁用) | 报告状态被禁用 |
本篇博文采用《CC 协议》,转载必须注明作者和本文链接
真好呢