关于 OceanBase 中 SQL 执行计划的固定(Outline)与演进(Plan Evolution)机制的协同关系,以下说法正确的是?


A. 一旦使用 CREATE OUTLINE 固定了执行计划,该 SQL 的计划就被永久锁定,SPM 的自动演进功能将不再对该 SQL 生效。

B. 通过 Outline 固定的计划如果因为统计信息变化导致性能下降,系统会自动将该计划标记为无效并启用 SPM 中的备选计划。

C. Outline 固定计划与 SPM 基线计划是两种独立的计划管理方式,当两者同时存在时,SPM 基线的优先级高于 Outline。

D. 使用 Outline 固定的计划虽然不会被自动演进替换,但 DBA 可以通过 DBMS_SPM.EVOLVE_SQL_PLAN_BASELINE 手动验证并更换新的计划。

3 个赞

解析
Outline 和 SPM 是 OceanBase 中两种计划固定机制。Outline 具有最高优先级,一旦绑定,优化器强制使用该计划,SPM 的自动演进不会覆盖 Outline 固定的计划。但是 DBA 仍可通过手动方式管理:先 DROP OUTLINE 删除旧的绑定,再通过 DBMS_SPM 包验证新计划,或创建新的 Outline 重新绑定。手动演进允许在确认新计划性能更优后主动切换,而不依赖自动机制。

  • A 错误 :Outline 固定的计划可以被手动删除或替换,并非“永久锁定”。
  • B 错误 :Outline 计划的性能下降不会自动触发 切换或标记无效,需要 DBA 人工介入评估。
  • C 错误 :优先级顺序是 Outline > SPM 基线计划 ,而非相反。
  • D 正确 :Outline 计划可通过手动验证和更换,依赖 DBA 主动操作。
3 个赞

正确答案:D

3 个赞

不错不错

1 个赞

不错不错

1 个赞