假设一条SQL执行时间很长,多次查询GV$OB_SQL_AUDIT,这条SQL是否会在结果中多次出现

【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】5.7.25-OceanBase_CE-v4.2.1.8
【问题描述】假设一条SQL执行时间很长,多次查询GV$OB_SQL_AUDIT,这条SQL是否会多次出现,如果会多次出现,可以用哪个字段标识,TRACE_ID 可以吗

2 个赞
  1. sql 执行还未结束的时候是不会记录到 sql audit 中。
  2. 一条SQL你想查询GV$OB_SQL_AUDIT记录,可以通过trace_id去查询,这个没问题。补充说明一点:有时候你会发现,这个trace_id 去查询的时候出来的记录可能不止一条,这是正常现象,因为内部SQL\远程执行的SQL\PX线程执行的SQL都会打印对应的sql_audit记录,但这些记录有个共同的特点就是他们的trace_id是一样的,换句话说,通过trace_id是可以查出这个SQL的所有执行环节的。

我之前写过一篇博客可能会对你认识sql_audit视图有所帮助:OceanBase 社区

4 个赞

get了,感谢回复

1 个赞