查看sys_stat_activity和sys_locks这两个视图
查看sys_state_activity表中state为active的行,如果wait_event_type为lock时,发生了锁表。
SELECT wait_event,wait_event_type,state,query FROM sys_stat_activity WHERE state != 'idle';
这一个查询是最为重点的地方,即当sys_locks表中granted字段有false时,出现了锁表。
select * from sys_locks where granted='false';
以上会查到许多进程,即 pid 字段。然后观察 type 字段,找到shareLock即共享锁以外的锁的进程pid,然后把相应的事务释放掉
SELECT sys_terminate_backend(pid);