1、查看表的状态
查看sys_stat_active视图的wait_event_type字段的值,查询SQL:
SELECT * FROM SYS_STAT_ACTIVITY WHERE QUERY LIKE '%执行的SQL%' ;
SELECT * FROM SYS_STAT_ACTIVITY WHERE DATNAME = '数据库名' AND USERNAME = '用户名';
查看state为active的行,当wait_event_type的状态为lock时,该表发生锁表。记录下来该表对应的PID,PID是这个后端的进程 ID。
补充一下wait_event_type的其他状态:
|
除了查询sys_stat_active视图还可以查询sys_locks视图
SELECT OID FROM SYS_CLASS WHERE RELNAME = '表名';
SELECT PID FROM SYS_LOCKS WHERE RELATION = 'OID';
2、解锁
释放对应的事务
SELECT sys_terminate_backend(pid);
执行后显示sys_terminate_backend为true时表示该问题已解决。
V8人大金仓数据库参考: