Skip to main content
优化建议是候选方案,不是自动发布指令。无论是重写 SQL 还是推荐索引,落地前都应按同一套框架评估语义、兼容性、收益和成本。

目标

用统一的决策框架评估重写与索引建议的语义、兼容性、收益和成本,并在测试、审核后安全落地。

准备工作

已有包含重写或索引建议的优化结果可供评估。

决策框架

重写 SQL 和索引定义不能因为由工具生成就直接用于生产。任何变更都应经过语义检查、测试验证和组织规定的发布流程。

评估重写建议

比较原始 SQL 与重写 SQL 时,重点检查:
  • 返回列、数据类型和列顺序;
  • NULL 语义;
  • 重复行与去重行为;
  • 过滤和连接条件;
  • 聚合、排序、分页和窗口函数;
  • 数据修改范围;
  • 目标数据库兼容性。
涉及 NULL、外连接、重复行、非确定性函数、隐式类型转换和数据修改语句时,应做更严格的结果一致性验证。不要只因为重写 SQL 更短或预估代价更低就直接采用。

评估索引建议

推荐索引是候选 DDL。阅读索引定义时确认目标表与 Schema、索引类型、键列及顺序、包含列、过滤条件、唯一性和在线创建选项。 检查与现有索引的关系: 同时评估收益(减少全表扫描、降低读取行数、改善连接、减少排序、覆盖查询)与成本(写入变慢、存储、创建耗时、锁影响、维护、分布式开销)。

落地建议

1

在测试环境验证

重写:比较结果一致性并检查计划;索引:创建候选索引后对比计划、耗时和扫描量。
2

执行自动化性能验证

用相同环境、数据、参数和会话条件,比较计划、代价、耗时和资源消耗。
3

提交变更审核

附上原始 SQL、建议依据、测试证据、容量估算、实施窗口和回退方案。
4

生产实施与观察

在批准窗口实施,观察锁、负载、空间、写入延迟和执行计划变化。

不应直接采用的情况

  • SQL 或对象未完整解析;
  • 工作空间与目标数据库不一致;
  • 无法解释规则依据或适用条件;
  • 结果一致性测试失败;
  • 推荐索引与已有索引重复,或表写入压力高、收益不足以覆盖维护成本;
  • 测试环境中数据库没有实际使用该索引;
  • 仅有预估收益,没有满足要求的验证。

记录处理结论

为每项建议记录采用、调整、拒绝或待验证的结论,并保留负责人、判断依据、测试环境与参数、执行计划或性能数据、计划上线时间和回退方式。

预期结果

通过评估的建议先在测试环境验证、再在审核后落地到生产,每项处理结论都被记录。

验证

在测试环境对比结果与执行计划,确认数据库实际使用了推荐索引,并为每项建议记录采用、调整、拒绝或待验证的结论。

下一步

查看优化结果

智能索引推荐能力