Agent Skills
返回列表
🔒

PostgreSQL 查询分析器

IT 运维与安全 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据官方安装指南 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/postgresql-query-analyzer 到你的 AI 助手。

技能介绍

要解决的具体问题

PostgreSQL 慢查询的定位往往卡在两个地方:EXPLAIN (ANALYZE, BUFFERS) 输出的指标过多,人工筛选成本高;pg_stat_statements 里的执行频率信息又和表扫描模式缺乏关联,导致缺索引这类基础问题难以快速确认。很多团队只能靠运维经验反复试错,而不是基于数据做出判断。

技能如何工作

该技能的核心是把两路数据拼在一起:一是带 BUFFERS 的 EXPLAIN 结果,能看到实际行数、缓冲区命中和排序开销;二是 pg_stat_statements 视图,用来对照同类 SQL 的累计执行代价。

它的典型工作流程可以拆成三步:

  1. 采集诊断信息:拉取指定查询的 EXPLAIN (ANALYZE, BUFFERS, FORMAT JSON) 输出,并关联 pg_stat_statements 的统计行。
  2. 扫描统计定位异常:通过 pg_stat_user_tables 里的 seq_scan 与 idx_scan 计数器,找出顺序扫描占比偏高、且查询经常命中的大表。
  3. 生成优化建议:结合执行计划中的 Seq Scan 节点和过滤条件,给出可执行的 CREATE INDEX 语句建议,并借助 HypoPG 扩展在不真正创建索引的情况下验证效果。

适用边界与注意点

  • 该技能聚焦查询层优化,不负责数据库实例级别的容量规划,也无法替代对硬件、配置参数(如 shared_buffers)的调整。
  • 索引建议依赖统计信息的新鲜度,pg_stat_user_tables 和 pg_stat_statements 的更新周期由 postgresql.conf 中的设置决定,延迟过长可能导致判断偏差。
  • HypoPG 模拟出的索引只是可行性参考,上线前仍需在测试环境验证写入性能和存储开销,避免在高并发写入表上引入不必要的维护成本。

使用场景

  • 线上接口突然变慢,需要快速定位是否存在全表扫描
  • 新业务上线前,对关键 SQL 做执行计划检查并确认索引覆盖
  • 夜间批处理耗时异常,用统计信息找出循环扫描大表的语句
  • 已有索引很多但仍慢,用 HypoPG 模拟候选索引验证收益

适合人员

  • 数据库管理员,需要定期排查实例中的慢查询和缺索引
  • 后端工程师,在代码上线前验证 PostgreSQL 查询的执行计划
  • 数据分析工程师,优化大表关联和聚合查询的耗时
  • SRE 工程师,处理线上数据库延迟告警并给出优化方案