A. GV$OB_SQL_AUDIT 仅记录执行时间超过 slow_query_threshold (默认 100ms)的慢查询,快速执行的 SQL 不会被记录。
B. 通过 GV$OB_SQL_AUDIT 中的 QUEUE_TIME 、EXECUTE_TIME 和 FETCH_TIME 字段,可以定位 SQL 在排队、执行和结果返回各阶段的耗时分布。
C. GV$OB_SQL_AUDIT 中的数据是实时更新的,每条 SQL 执行完成后立即写入,因此可以用于实时监控。
D. GV$OB_SQL_AUDIT 只记录用户租户的 SQL,系统租户(sys )内部的 SQL(如合并、转储任务)不会被记录。
5 个赞
解析 :
GV$OB_SQL_AUDIT 是 OceanBase 最核心的性能诊断视图之一。它详细记录了每条 SQL 从收到请求到返回结果的完整生命周期,其中 QUEUE_TIME (排队等待时间)、EXECUTE_TIME (执行时间)和 FETCH_TIME (结果返回时间)是定位性能瓶颈的关键字段。通过分析这些字段的分布,可以快速判断慢查询是卡在排队、执行还是网络传输阶段。
-
A 错误 :
GV$OB_SQL_AUDIT 记录所有执行完成的 SQL (受内存大小和保留时间限制),不仅限于慢查询。慢查询只是其中的一个子集。
-
B 正确 :这三个时间字段分别对应 SQL 请求的不同阶段,是性能诊断的核心指标。
-
C 错误 :
GV$OB_SQL_AUDIT 的数据是异步写入 的,存在一定的延迟(通常在秒级到分钟级),不适合用于实时监控。实时监控应使用 GV$OB_PROCESSLIST 或 GV$OB_SQL_AUDIT 的实时采样变体。
-
D 错误 :
GV$OB_SQL_AUDIT 同时记录系统租户和用户租户 的 SQL,包括后台任务(如合并、转储)产生的内部 SQL,这对于排查系统层面的性能问题同样重要。
6 个赞