# SQL 性能分析

找出耗时的查询，生成优化建议，让 AskTable 查得更快。

使用指南 · 模块: data · 管理人员 · 部署形态：资料未说明 · 已确认产品版本：资料未说明 · 来源：编辑整理 · 按产品 4.2.76-1110（CLI 0.0.18）核对；私有部署的旧版本可能不包含近期变化。

SQL 性能分析统计智能体在一个数据源上执行的查询耗时，找出最慢、最耗资源的 SQL，并生成两类优化建议：AskTable 生成 SQL 时可参考的规则，以及需要管理员在数据库中执行的操作。

需要项目负责人或项目管理员。部分数据源类型暂不支持，页面会提示。

入口：「更多」→「数据源」→ 点击数据源 →「性能优化」。

## 查看耗时

- **趋势图**：每小时的平均查询耗时，数字越小越好。悬停查看耗时、次数和异常率；点击某个点查看当天的排行。
- **当天排行**：「累计耗时 Top 20」找出主要消耗，「平均耗时 Top 20」找出单次很慢的查询。默认显示今天（每小时更新），也可以查看过去 7 天。异常次数包含失败、超时和取消。

统计只覆盖已完成的小时。新数据源在第一次查询后的下一个完整小时才会出现数据。统计数据保留 35 天。

## 生成并应用建议

**生成分析**

在排行中选择一条 SQL，点「生成分析」。分析需要一段时间完成。

**查看建议**

建议分两组：

- **让 AskTable 查询更快**：例如固定使用某个过滤字段、避免某种写法。
- **数据库优化建议（需人工操作）**：例如增加索引，附带可复制的 SQL。AskTable 不会自动执行这些语句，需要管理员评估后在数据库中操作。

**应用到 AskTable**

点「让 AskTable 下次查询时参考」，系统会筛选可用的规则，合并到这个数据源的「查询优化提示词」中，下次生成 SQL 时生效。

## 查询优化提示词

「查询优化提示词」只对当前数据源生效，可以手动编辑、启用或停用。每次修改都会保存一个版本，在「版本历史」中可以回滚到任一版本；回滚会生成新版本，历史保留。

## 常见问题

| 现象       | 原因             | 处理             |
| -------- | -------------- | -------------- |
| 提示暂不支持   | 数据源类型不支持性能统计   | —              |
| 排行为空     | 统计周期还没结束，或没有查询 | 等下一个完整小时后再看    |
| 提示已有相同规则 | 提示词中已包含该建议     | 无需操作           |
| 应用后查询仍然慢 | 主要瓶颈在数据库       | 按数据库优化建议由管理员处理 |
