每日一题,哪个系统视图可以获取SQL的基线计划的状态和执行统计信息?

以下哪个系统视图可以获取SQL的基线计划的状态和执行统计信息?

A、GV$PLAN_CACHE_PLAN_STAT

B、DBA_SQL_PLAN_BASELINES​​

C、GV$OB_PLAN_CACHE_PLAN_STAT

D、DBA_OB_SQL_PLAN_BASELINES​

1 个赞

B

我选择D、DBA_OB_SQL_PLAN_BASELINES
这是 OceanBase 专属的 SQL 计划基线视图,专门用于存储和查询 SQL 基线计划的核心信息,包括:

  • 基线的状态(如 ENABLED、ACCEPTED、FIXED 等)
  • 基线对应的 SQL 文本、计划哈希值
  • 基线的创建时间、最后执行时间
  • 基线的执行统计(如执行次数、平均耗时等)完全匹配 “获取 SQL 基线计划的状态和执行统计信息” 的需求。

选B

选B

正确答案

D. DBA_OB_SQL_PLAN_BASELINES

解析

需明确 OceanBase 中各系统视图的定位,核心区分 “计划缓存视图” 与 “基线计划视图”:

  1. 选项 A(GV$PLAN_CACHE_PLAN_STAT):无OB前缀,是 Oracle 兼容视图,用于查看计划缓存的统计,但并非 OceanBase 专属的基线计划视图。
  2. 选项 B(DBA_SQL_PLAN_BASELINES):是 Oracle 原生的 SQL 计划基线视图,OceanBase 中对应的基线视图需添加OB前缀,因此该选项不适用于 OceanBase。
  3. 选项 C(GV$OB_PLAN_CACHE_PLAN_STAT):是 OceanBase 全局计划缓存的统计视图,用于查看当前缓存中 SQL 计划的执行次数、耗时等指标,但不涉及基线计划(仅记录当前活跃的缓存计划)。
  4. 选项 D(DBA_OB_SQL_PLAN_BASELINES):是 OceanBase 的 DBA 级 SQL 计划基线视图,专门存储 SQL 基线计划的信息,包括基线的状态(如ENABLED/ACCEPTED)、执行次数等核心统计数据,完全匹配 “基线计划的状态和执行统计” 的需求。

答案 B
SELECT * FROM DBA_SQL_PLAN_BASELINES WHERE SQL_HANDLE = ‘sql_id’;

这题选D吧