【 使用环境 】测试环境
【 OB or 其他组件 】OB
【 使用版本 】4.x
【问题描述】OB 有行锁的统计信息表吗?比如行锁的申请次数,等待次数,超时次数还有锁时长 统计信息@论坛小助手
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!
【 使用环境 】测试环境
【 OB or 其他组件 】OB
【 使用版本 】4.x
【问题描述】OB 有行锁的统计信息表吗?比如行锁的申请次数,等待次数,超时次数还有锁时长 统计信息@论坛小助手
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!
根据文档库中的信息,OceanBase 数据库并没有直接提供行锁的统计信息表来记录行锁的申请次数、等待次数、超时次数以及锁时长等详细统计信息。通常情况下,OceanBase 会通过多版本两阶段锁协议来管理并发控制,并且读操作不会上锁以提高并发性能(参考自“OceanBase 数据库使用了多版本两阶段锁”相关内容)。
但是,对于锁相关的调试和诊断,OceanBase 提供了一些视图用于监控和故障排查,例如:
GV$OB_LOCK_WAIT_STAT:此视图可以用来查看当前系统中所有事务等待锁的状态。它包含了等待锁的会话ID、对象ID、锁模式等信息,但请注意这并不是一个累积性的统计表,而是反映当前时刻的锁等待情况。
GV$OB_TRANSACTION:该视图提供了关于正在进行中的事务的信息,包括事务持有的锁信息。虽然这不是专门针对行锁的统计信息,但对于理解特定时间点上的锁持有状况仍然有用。
如果您需要更详细的行锁统计信息,可能需要依赖于应用层的日志记录或者借助外部工具进行分析。另外,也可以考虑向 OceanBase 提交功能请求,以便未来版本中能够包含更丰富的锁统计特性。
如果上述内容未能满足您的需求或有其他疑问,请联系 OceanBase 的人工答疑以获取更多帮助。
检索到的文档如下:
看了下OB 的锁统计,好像只有GV$SYSTEM_EVENT 里面搜索latch 等关键字查看latch 锁
https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002013521
还有就是CDB_OB_DEADLOCK_EVENT_HISTORY 死锁的记录
https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002016757
但是没找到关于行锁的统计信息
根据文档库中的信息,确实如您所提到的,OceanBase 数据库并没有直接提供专门用于记录行锁申请次数、等待次数、超时次数以及锁时长等详细统计信息的表。以下是更详细的说明:
关于锁统计视图:
latch
等)的等待情况,但并不是针对行锁的具体统计。行锁监控:
对于行锁的实时状态,您可以使用 GV$OB_LOCKS 视图(从 V4.2.0 版本开始引入),该视图显示了当前用户各表持锁或请求锁的情况。这可以帮助您了解当前时刻的行锁持有和等待状况,但不是累积性的统计信息。
SELECT * FROM GV$OB_LOCKS;
进一步的行锁分析:
功能请求:
综上所述,目前 OceanBase 社区版确实没有提供专门的行锁统计信息表。如果您有更多问题或需要进一步的帮助,请随时告知。希望这些信息对您有所帮助。
具体信息可参考以下文档:
(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)
可以根据这个语句查一下
select * from (select a.tenant_id,a.svr_ip,a.ls_id,a.table_id,c.table_id table_actual_id,c.table_name,a.tablet_id,a.session_id,a.ctx_create_time
from __all_virtual_trans_lock_stat a left join __all_virtual_tablet_to_ls b on b.tablet_id=a.tablet_id left join __all_virtual_table c on b.table_id=c.table_id) t where t.table_name like ‘%ZRY2%’;
没有这个字段 把这个字段去掉
去掉可以查,我试试看能不能行,感谢
好的 目前可以这样查行锁信息
学习了
我是小白,我记得oceanbase好像只有表级锁吧