新建库下尝试查找v$OB_SQL_AUDIT,但显示不存在

【 使用环境 】 测试环境
【 OB or 其他组件 】
【 使用版本 】4.3.0
【问题描述】
1.Oceanbase新建库 名字test
2.尝试运行sql alter system set enable_sql_audit = true; 查看结果运行成功
3.select request_id,usec_to_time(request_time),ELAPSED_TIME,QUEUE_TIME,EXECUTE_TIME,query_sql
from v$OB_SQL_AUDIT where ELAPSED_TIME > 100000 limit 10; 尝试在当前库下运行 该sql
4.返回1146 - Table ‘test.v$OB_SQL_AUDIT’ doesn’t exist

新手玩家请指教!

OB MySQL 租户 的 OB 自己的视图和表在 OceanBase 下面。

desc oceanbase.v$ob_sql_audit;
desc oceanbase.gv$ob_sql_audit;

v$OB_SQL_AUDIT这种视图都是在oceanbase库下面的,普通的业务库是没有这张表的,查询的时候直接从oceanbase库下查就行

1 个赞

完全小白哈,那我新建库test,我想看他库中有没有某些sql select*调用到呢,难道不应该在test库中有对应的OB_SQL_AUDIT table吗

也就是说业务库test 调用到的sql去 oceanbase下的gv$ob_sql_audit 表去查是吧,我去看看

  1. test 库是用户创建的库,理论上 ob 没权限在用户创建的库里去创建 ob 系统的表和视图。而 oceanbase 库是系统自带的专门存放元信息的库,类似于 MySQL 中的 mysql 库,专门放这些系统表和系统视图的。

  2. 如果 test 库中有 OB_SQL_AUDIT 这张视图,跨库的查询可能就需要冗余地在 SQL 涉及到的各个库里记录大量重复的信息了,感觉不太合适。

1 个赞