SuperAPI AI 工具集

hologres-slow-query-analysis

数据与分析

查看项目

更新于 10-16 04:59

技能介绍

用途:基于 hologres.hg_query_log 视图分析 Hologres 实例的慢 SQL,输出结构化诊断结论与优化建议,回答哪些 SQL 最值得优先优化、为什么慢、应当怎么优化。所有 SQL 通过 hologres sql run --no-limit-check 执行。

就绪检查:需已 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。

输入参数:start_time(必填,ISO-8601,北京时间须带 +08:00)、end_time(必填,格式同上)、query_id(选填,提供时优先做单条 SQL 分析)。数据库由当前 profile 的 database 决定,无法在命令上指定 --db-name;换库用 hologres config set database <db> 或 --profile <name>。

决策逻辑:未提供 query_id 时执行实例整体慢 SQL 分析 6 步(总体汇总→多维画像→优先优化对象→重点 SQL 深挖→错误 SQL 分类→最终结论);提供 query_id 时执行单条 SQL 分析 5 步(定位记录→慢因维度判断→计划/统计深挖→原因总结→优化建议)。各步骤 SQL、输出模板与判定阈值见对应 references 文件,每个诊断项须按固定格式输出总结。

限制:hg_query_log 默认保留约一个月,单次最多 10000 条;查询必须带 query_start 范围条件,不要用 to_char(query_start, ...) 包裹。engine_type 为数组类型,聚合时用 engine_type::text,FixedQE 类 SQL 通常非瓶颈,建议过滤 engine_type::text NOT LIKE '%FixedQE%'。digest 字段从 V2.2 起支持,低版本为空需降级为按 query 文本聚合。输出错误 SQL、优先优化对象、重点 SQL 时 query 原文不可截断且须附 query_id。当 hologres sql run 返回空结果时,禁止自行改参数重试,直接跳过该步骤并标注「无数据」。