在 OceanBase 的 SQL 优化中,关于“执行计划管理(SPM)”和“统计信息”,以下做法正确的有?

在 OceanBase 的 SQL 优化中,关于“执行计划管理(SPM)”和“统计信息”,以下做法正确的有?
A. 当优化器选择错误的执行计划导致 SQL 变慢时,可以使用 SPM 绑定(Bind)指定的执行计划
B. 统计信息陈旧会导致优化器估算行数不准,应定期收集或开启自动收集统计信息
C. 为了保证性能,应该禁止所有 SQL 的并行查询(Parallel Query)
D. 对于分区表,收集统计信息时可以指定粒度(如全局、分区级别)以提高收集效率

3 个赞

正确答案:ABD

2 个赞
  • A 正确 SPM 执行计划管理核心作用:遇到优化器选错计划、SQL 性能退化时,可手动绑定固定执行计划,稳定业务性能。

  • B 正确 优化器依赖统计信息做行数、成本估算;统计信息陈旧会导致选错索引、选错连接方式,OB 支持手动定时收集 + 开启自动收集统计信息。

  • C 错误 大表查询、分区表批量统计、报表类 SQL 适合开启并行查询提升效率,不能一刀切全部禁止。

  • D 正确 OceanBase 分区表支持按全局级别、单个分区级别灵活收集统计信息,不用每次全量收集,大幅提升效率、减少资源消耗。

1 个赞

解析的很清楚