> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pawsql.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> PawSQL 是一个产品：Cloud 是公网部署形态，Engine / Optimizer / Auditor / Advisor / Patroller 是同一产品的组件与交付形态，不是彼此独立的产品。 / PawSQL is a single product: Cloud is the public deployment form, while Engine / Optimizer / Auditor / Advisor / Patroller are components and delivery forms of the same product, not separate products.
> 术语以站内术语表为准：SQL 审核对应英文 SQL Review，查询重写对应 Query Rewrite，索引推荐对应 Index Recommendation；英文内容统一用 Review，不用 Audit。 / Use the site glossary for terminology: 审核 is SQL Review, 重写 is Query Rewrite, 索引推荐 is Index Recommendation; English content uses Review, never Audit.
> 引用能力范围或版本支持时以对应页面为准；标注 unknown、或 status 非 published 的内容表示尚未经产品核实，不应作为事实引用。 / Cite capability scope and version support from the corresponding page; content marked unknown, or with a status other than published, is not yet product-verified and must not be cited as fact.

# 优化任务创建与配置

> 配置优化任务的输入、验证、索引推荐和优化规则选项，控制重写与索引建议的产生方式。

查询优化是在工作空间内对一组 SQL 进行的性能优化诊断，一般包括 SQL 审查、重写优化、索引推荐等。创建优化任务时，可以配置输入、输出、数据源以及执行过程。

## 目标

配置优化任务的输入、验证、索引推荐和优化规则选项，控制重写与索引建议的产生方式。

## 准备工作

已有工作空间和需要在该工作空间内优化的 SQL。

## 基础配置

* **优化 ID**：标识本次优化任务。
* **是否仅索引推荐**：控制是否启用重写优化。当 SQL 已经上线、修改 SQL 无法立即实施时，可启用此选项——PawSQL 将不重写 SQL，只基于原 SQL 做索引推荐。

## 优化验证

* **是否更新 DDL 信息**：是否连接到验证数据库获取最新的 DDL。
* **是否启用 What-If 性能验证**：控制是否对推荐建议做性能验证。启用后，优化详情会提供 SQL 优化前后的执行计划及代价信息，用于确认重写与索引建议能真实提升性能。
* **是否启用 Analyze**：在 What-If 性能验证时获取 SQL 的真实解析与执行时间，使代价估算更精确。

<Warning>
  性能验证的两个选项应避免在生产库上使用。对于没有内置虚拟索引的数据库（如 MySQL、PostgreSQL），性能验证通过「创建推荐索引 → explain 分析执行计划 → 删除推荐索引」完成，在生产库上会消耗资源且耗时较长。
</Warning>

## 索引推荐配置

* **是否和现有索引去重**：推荐索引时是否排除与现有索引重复的建议。当输入 SQL 只代表数据库的一部分查询、不打算删除现有索引时，应启用此选项。
* **是否推荐覆盖索引**：是否考虑覆盖索引策略。覆盖索引可避免回表、显著提升性能，但会包含查询条件未使用的列，增加磁盘占用。
* **覆盖索引的最大列数**：限制覆盖索引的最大列数，控制其空间占用。
* **索引的最大列数**：限制索引的最大列数，避免过宽的索引加深索引树层级。
* **单表最大索引数目**：审查单表的索引数量并给出警告，因为索引会增加磁盘占用并对 DML 产生负面影响。

## 优化规则配置

逐项启用或禁用优化规则，并修改相应阈值。

<Frame caption="创建优化任务时配置基础、验证、索引推荐与规则选项">
  <img src="https://mintcdn.com/pawsql/cdtFYB4QMM1nGHhK/images/optimization/setup-zh.png?fit=max&auto=format&n=cdtFYB4QMM1nGHhK&q=85&s=1085141be3fe9fcaa4017e0eeb610dd1" alt="优化任务配置：基础、验证、索引推荐与规则选项" width="658" height="903" data-path="images/optimization/setup-zh.png" />
</Frame>

## 提交并确认任务成功

配置完成后提交任务，任务完成后至少检查：

* [ ] SQL 解析成功。
* [ ] 数据库类型和版本正确。
* [ ] 表、列和 Schema 识别正确。
* [ ] 任务没有被错误截断为多条或少条语句。
* [ ] 审查、重写、索引或计划模块按预期执行。
* [ ] 结果页面没有未处理的部分失败。

<Tip>
  任务状态为「已完成」表示分析结束，不表示 SQL 已经最优，也不表示所有建议都适合直接采用。
</Tip>

## 预期结果

提交后任务按配置选项执行，并产出可供查看的优化结果。

## 下一步

<CardGroup cols={2}>
  <Card title="查看优化结果" href="/user-guide/optimization/explain-output" />

  <Card title="评估与落地建议" href="/user-guide/optimization/apply-suggestions" />

  <Card title="输入待优化 SQL" href="/user-guide/optimization/create-workload" />
</CardGroup>
