用途:帮助分析和优化慢 SQL 查询,覆盖执行计划解读、索引、连接、子查询/CTE 与分页等常见性能问题。
主要能力:分四阶段推进。发现阶段确认数据库引擎与版本、是否具备 EXPLAIN ANALYZE 输出、表行数、查询是否为高频路径、统计信息是否新鲜。计划分析阶段重点看估算行数与实际行数差异、最内层高成本节点、loops 放大效应、Buffers 的 shared hit/read,并判断顺序扫描是否正确。修复阶段涵盖连接顺序与嵌套循环/哈希/合并连接选择、隐式笛卡尔积、相关子查询改写为聚合连接、EXISTS/IN/JOIN 取舍、CTE 物化陷阱、OFFSET 分页改为 keyset 游标分页、覆盖索引与表达式索引、索引被忽略的常见原因。输出阶段可给出计划注解、重写查询、CREATE INDEX 建议、分页改写与会话级诊断命令。
使用方式:用户提供慢查询与 EXPLAIN (ANALYZE, BUFFERS) 输出后,按上述阶段分析并给出改写与索引建议;统计信息陈旧时运行 ANALYZE 表名,必要时用 SET work_mem 调整会话内存。
适用场景:PostgreSQL 慢查询排查、高频接口优化、分页性能改进、索引设计评审。
限制:资料以 PostgreSQL 为主,其他数据库的提示与索引类型差异需另行确认;keyset 分页不支持跳转到任意页码;NOT IN 遇可空子查询列会返回空结果,应改用 NOT EXISTS;CTE 物化行为在 PostgreSQL 12 前后不同。其他平台与收费信息暂未提供。