人大金仓数据库V8版本锁表的解决方案

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的其他状态:

  • LWLock:后端正在等待一个轻量级锁。每一个这样的锁 保护着共享内存中的一个特殊数据结构。

  • Lock:后端正在等待一个重量级锁。重量级锁, 也称为锁管理器锁或者简单锁,主要保护 SQL可见的对象

  • BufferPin:服务器进程正在等待访问一个数据缓冲区,而此时没有其他进程正 在检查该缓冲区。

  • Activity:服务器进程处于闲置状态。这被用于在其主处理循环中等待活动的系统 进程。wait_event将标识特定的等待点。

  • Extension:服务器进程正在一个扩展模块中等待活动。

  • Client:服务器进程正在一个套接字上等待来自用户应用的某种活动,并且该 服务器预期某种与其内部处理无关的事情 发生。wait_event将标识特定的等待点。

  • IPC:服务器进程正在等待来自服务器中另一个进程的某种 活动。wait_event将标识特定的等待点。

  • Timeout:服务器进程正在等待一次超时发生。wait_event将标识特定的等待点。

  • IO:服务器进程正在等待一次IO完成。

除了查询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人大金仓数据库参考:

KingbaseES V8版本说明书 — KingbaseES产品手册

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

别影响我加班

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值