Oceanbase4.2怎么通过事务id获取事务当前执行的sql

【 使用环境 】生产环境
【 OB or 其他组件 】OB
【 使用版本 】4.2.0
【问题描述】通过gv$ob_locks可以查询到锁的持有者和等待者信息,但是通过这里面的信息怎么获取到事务正在执行的sql呢,通过trans_id和gv$ob_processlist关联,但是info字段为NULL,看不到sql信息
【复现路径】问题出现前后相关操作
【问题现象及影响】

【附件】

如果知道session_id的话,可以试试:select * from __all_virtual_session_info where id=xxx;

知道的,通过ob$ob_processlist可以关联出来,我试试

4.2是不是没有这张内部表了呀

有这张表,需要连接sys租户,use oceanbase 数据库,然后执行这条命令。

好的,业务租户还有什么办法可以看到sql吗?

对于正在执行的sql就是通过 gv$ob_processlist 查看哈,然后就是通过session查看。对于已经执行完的sql,可以通过 gv$ob_sql_audit 视图查看,前提是开启了配置项:enable_sql_audit=true

但是锁堵塞场景会话都是sleep了,gv$ob_processlist里面记录为空,gv$ob_sql_audit表又太大了

表大* 换成关键词 看下 https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000220956
select 关键词 from gv$ob_sql_audit limit 0,10;

除了这个表其他没有对应视图可以看到事务当前执行的sql了吗

有时候阻塞事务的id在sql_audit查不到,怎么确认是不是被淘汰掉了呢

https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000034724 试下这个