Agent Skills
返回列表
💻

PostgreSQL 慢查询分析器

开发编程 更新于 2026.08.29

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

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/postgresql-slow-query-analyzer。

技能介绍

解决什么问题

PostgreSQL 慢查询排查常陷入「日志零散、方向模糊」的困境:pg_stat_statements 记录语句执行统计,pg_stat_activity 反映当前运行状态,但手动关联两者需记忆复杂字段;面对 Top 慢查询,仅看总耗时难区分「高频轻量」与「低频重负载」,优化时易靠经验猜测索引或改写方向,漏掉关键问题。

核心工作逻辑

技能通过两步拆解慢查询定位与优化:

  • 聚合统计信息:从 pg_stat_statements 提取语句的 total_exec_time、mean_exec_time 和 calls 字段,从 pg_stat_activity 补充实时执行上下文,按总耗时、平均延迟、调用频率排序,输出 Top 慢查询清单。
  • 针对性优化建议:对排名靠前的语句运行 EXPLAIN ANALYZE,结合执行计划分析瓶颈——若计划显示全表扫描,建议补充索引;若存在冗余逻辑,标记为改写候选;若涉及大量 dead tuples,提示触发 vacuum。

适用边界

  • 依赖 pg_stat_statements 扩展:需提前启用并完成统计采集(如配置 shared_preload_libraries),否则无法获取语句级统计。
  • 统计信息时效性:仅反映采集周期内的执行情况,若负载波动大,需结合历史数据交叉验证。
  • 托管环境适配:在 AWS RDS 和 Supabase 中可直接使用,但需确认实例已开启 pg_stat_statements,且具备查询系统表权限。

使用场景

  • 线上接口响应变慢,需从 pg_stat_statements 按总耗时与调用频率找出拖慢系统的 Top SQL 并分析。
  • RDS 实例负载突增,需结合 pg_stat_activity 排查当前运行状态,并对最慢查询执行 EXPLAIN ANALYZE。
  • 历史表数据膨胀导致查询变慢,需定位执行计划瓶颈,并获取添加索引、改写 SQL 或触发 vacuum 的具体建议。
  • 在 Supabase 项目中优化复杂报表,需通过平均延迟和调用频率区分高频轻量与低频重负载语句,制定优化策略。

适合人员

  • 后端开发工程师:线上数据库出现性能瓶颈,需要快速定位 Top 慢查询并通过索引或改写降低接口延迟。
  • 数据库管理员(DBA):托管实例负载异常时,需利用系统统计视图和执行计划制定应急与长期优化方案。
  • 全栈开发者:在 Supabase 等平台构建应用,需要针对复杂 SQL 语句获取自动化的性能诊断与优化建议。
  • 数据平台工程师:处理海量历史数据表时,需识别导致扫描耗时激增的 SQL 并决定何时触发 vacuum 或添加索引。