目标
配置优化任务的输入、验证、索引推荐和优化规则选项,控制重写与索引建议的产生方式。准备工作
已有工作空间和需要在该工作空间内优化的 SQL。基础配置
- 优化 ID:标识本次优化任务。
- 是否仅索引推荐:控制是否启用重写优化。当 SQL 已经上线、修改 SQL 无法立即实施时,可启用此选项——PawSQL 将不重写 SQL,只基于原 SQL 做索引推荐。
优化验证
- 是否更新 DDL 信息:是否连接到验证数据库获取最新的 DDL。
- 是否启用 What-If 性能验证:控制是否对推荐建议做性能验证。启用后,优化详情会提供 SQL 优化前后的执行计划及代价信息,用于确认重写与索引建议能真实提升性能。
- 是否启用 Analyze:在 What-If 性能验证时获取 SQL 的真实解析与执行时间,使代价估算更精确。
索引推荐配置
- 是否和现有索引去重:推荐索引时是否排除与现有索引重复的建议。当输入 SQL 只代表数据库的一部分查询、不打算删除现有索引时,应启用此选项。
- 是否推荐覆盖索引:是否考虑覆盖索引策略。覆盖索引可避免回表、显著提升性能,但会包含查询条件未使用的列,增加磁盘占用。
- 覆盖索引的最大列数:限制覆盖索引的最大列数,控制其空间占用。
- 索引的最大列数:限制索引的最大列数,避免过宽的索引加深索引树层级。
- 单表最大索引数目:审查单表的索引数量并给出警告,因为索引会增加磁盘占用并对 DML 产生负面影响。
优化规则配置
逐项启用或禁用优化规则,并修改相应阈值。
创建优化任务时配置基础、验证、索引推荐与规则选项
提交并确认任务成功
配置完成后提交任务,任务完成后至少检查:- SQL 解析成功。
- 数据库类型和版本正确。
- 表、列和 Schema 识别正确。
- 任务没有被错误截断为多条或少条语句。
- 审查、重写、索引或计划模块按预期执行。
- 结果页面没有未处理的部分失败。