关于事务查询问题

事务查询

虚拟表 __all_virtual_trans_stat 可用于查询系统中当前所有的活跃事务,

image

这个字段的对应关系怎么查看,有没有对应视图?

OB 4.2.1

@论坛小助手

根据文档库中的信息,可以回答您的问题。

在 OceanBase 数据库中,__all_virtual_trans_stat 是一个虚拟表,用于查询系统中当前所有的活跃事务。活跃事务是指事务已经开启但没有提交或回滚的事务。活跃事务所做的修改在提交前是临时的,其他事务无法看到。

1. state 字段的对应关系

根据您提供的图片内容,state 字段的值及其对应的说明如下:

state 的值 说明
INIT 表示事务处于活跃状态,所有修改对其他事务不可见。
REDO COMPLETE 表示事务已经将所有数据成功以日志形式持久化。
PREPARE 表示事务已经开始提交,目前处于 PREPARE 状态,读取该事务的修改可能会被卡住(取决于版本号)。
PRECOMMIT 表示事务即将提交,正在同步事务的提交版本号到所有涉及的参与者。
COMMIT 表示事务已经开始提交,目前处于 COMMIT 状态,其他事务可以看到该事务的修改(取决于版本号)。
ABORT 表示事务已经回滚,处于 ABORT 状态,其他事务不能看到该事务的修改。
CLEAR 表示事务已经提交或回滚结束,处于 CLEAR 状态。

2. 查询 state 字段的对应关系

您可以使用以下 SQL 查询来查看 state 字段的对应关系:

SELECT SESSION_ID, TRANS_ID, STATE 
FROM oceanbase.__all_virtual_trans_stat 
WHERE SESSION_ID = CONNECTION_ID();
  • SESSION_ID:会话 ID。
  • TRANS_ID:事务 ID。
  • STATE:事务的状态。

3. 是否有对应的视图

根据文档片段 5 和文档片段 6 的信息,OceanBase 数据库提供了动态性能视图来查询事务的相关信息。虽然 __all_virtual_trans_stat 是一个虚拟表,但您可以使用动态性能视图 GV$OB_SQL_AUDITV$OB_SQL_AUDIT 来查看并行执行的运行状态以及一些统计信息。

如果您需要更详细的事务信息,可以参考以下视图:

  • [G]V$SYSSTAT:提供系统统计值的信息,能够准确反映数据库运行状况的各项指标和指标名称。
  • [G]V$ACTIVE_SESSION_HISTORY:对活跃 Session 每秒采样一次,基于时间序列记录系统的运行状况。

这些视图可以帮助您更好地了解事务的状态和性能。

结论

根据文档库中的信息,__all_virtual_trans_stat 是查询系统中当前所有活跃事务的虚拟表,state 字段的值及其对应的关系如上表所示。您可以使用上述 SQL 查询来查看 state 字段的对应关系,并参考动态性能视图获取更多事务信息。

检索到的文档如下:

  1. OceanBase 自有视图
  2. MySQL 兼容视图
  3. CONNECTION_ID
  4. 日志归档相关视图介绍
  5. 性能视图
  6. 启用和关闭并行查询
  7. WR 概述
  8. oceanbase.DBA_OB_LS_REPLICA_TASKS
  9. oceanbase.CDB_OB_LS_REPLICA_TASKS
1 个赞