在执行表的计算逻辑的时候,会出现卡在哪里很久都不动的情况,考虑是发生了锁表的情况:
数据库:GP / PG
查看方式:
-- 我这里的参数:SKU-门店移动限制明细表, 是我计算逻辑中的一部分
select * from pg_stat_activity
--where datname=''
where query like '%SKU-门店移动限制明细表%'
order by query_start
;
可以着重关注这些字段:
pid: 进程id
client_addr: 客户机地址,也就是自己的ip
waiting: 是否在等待
state:进程状态
query: 计算逻辑
waiting_reason: 等待原因(如果是锁表,这里会显示LOCK)
解决办法:
-- kill 对应进程
SELECT pg_terminate_backend(#{pid});