| name | hologres-slow-query-analysis |
| depends | ["hologres-cli"] |
| description | Hologres slow query log analysis and diagnosis skill. Use for analyzing slow queries,
failed queries, query performance diagnosis, and log management in Alibaba Cloud Hologres.
All SQL is executed via `hologres sql run` (`hologres sql run --no-limit-check`).
Triggers: "hologres slow query", "hg_query_log", "query diagnosis", "慢Query分析", "Hologres性能诊断"
|
⚠️ 执行前就绪检查(所有分析步骤之前完成):
- 已
pip install hologres-cli,且 hologres status 能连通目标实例(连接哪个实例 / 库由当前 profile 决定,可用 --profile <name> 切换)。
export HOLOGRES_SKILL=hologres-slow-query-analysis,便于事后审计。
RAM 权限、慢日志读授权(pg_read_all_stats / spm_grant)、版本矩阵、引擎类型语义见 references/preconditions.md。
Hologres 慢 SQL 分析
基于 hologres.hg_query_log 视图分析 Hologres 实例的慢 SQL,输出结构化诊断结论 + 优化建议,回答:哪些 SQL 最值得优先优化、为什么慢、应当怎么优化。所有 SQL 通过 hologres sql run --no-limit-check 执行。
输入参数
| 参数 | 必填 | 说明 |
|---|
start_time | 是 | 分析开始时间,ISO-8601(北京时间须带 +08:00) |
end_time | 是 | 分析结束时间,格式同 start_time |
query_id | 否 | 单条 SQL 标识;提供时优先做单条 SQL 分析 |
数据库由当前 profile 的 database 决定,无需也无法在命令上指定 --db-name;换库用 hologres config set database <db> 或 --profile <name>。
决策逻辑
每个步骤的具体 SQL、输出模板、判定阈值都在对应 references 文件中。每个诊断项都必须输出固定格式的总结,模板见 output-spec.md。
实例整体慢 SQL 分析(intent overview)
单条 SQL 分析(intent overview)
输出模板总则
每个诊断项必须采用以下固定格式输出(具体字段在各 step 模板内细化):
【诊断项名称】
- 指标口径:{统计口径说明}
- 关键结果:{核心数值或 Top 对象(含 query_id)}
- 典型完整 SQL:query_id={...},SQL={完整 query 原文,不可截断}
- 现象总结:{现象描述}
- 原因判断:{原因分析}
- 建议:{优化建议}
- 结论:{一句话总结}
完整输出规范(标题 / 分析人 / 引擎类型规则 / 实例级 vs 单条 SQL 输出清单)见 references/output-spec.md。
References
注意事项
hologres.hg_query_log 默认保留约一个月,单次最多 10000 条;查询必须带 query_start 范围条件,不要用 to_char(query_start, ...) 包裹(无法走索引)。
engine_type 为数组类型,聚合时使用 engine_type::text;FixedQE 类 SQL 在慢 SQL 诊断中通常不是瓶颈,建议在 digest 聚合 SQL 中过滤 engine_type::text NOT LIKE '%FixedQE%'(详见 instance-flow §2.1)。
digest 字段从 V2.2 起支持,低版本实例为空,需降级为按 query 文本聚合。
- 输出错误 SQL / 优先优化对象 / 重点 SQL 时,
query 原文不可截断,且必须随附 query_id。
- 当
hologres sql run 返回空结果(无数据)时,禁止自行修改参数重试或变通获取数据;直接跳过该步骤,在输出结果中标注「无数据」。