SuperAPI AI 工具集

loom-sql-optimization

数据与分析

查看项目

更新于 10-15 20:28

技能介绍

用途:分析并优化 SQL 查询性能,主要面向 PostgreSQL,涵盖索引设计、查询重写、EXPLAIN/EXPLAIN ANALYZE 解读与配置调优。

主要能力:提供从定位慢查询到验证优化的完整工作流——通过日志或 pg_stat_statements 按总耗时找慢查询,用 EXPLAIN (ANALYZE, BUFFERS, SETTINGS) 读计划,按“刷新统计→调整索引→重写查询→反规范化→调配置”的优先级逐项修改并验证。包含扫描类型(Seq/Index/Index Only/Bitmap)、连接算法(Nested Loop/Hash/Merge Join)说明,以及统计维护、膨胀检测、VACUUM ANALYZE、shared_buffers、work_mem 等配置检查。

常见反模式:SELECT *、隐式类型转换、同列 OR 未改写为 IN、相关子查询、缺少 WHERE 的批量更新、深 OFFSET 分页、索引列上使用函数。推荐用 NOT EXISTS 替代 NOT IN,用 JOIN 或 WHERE id = ANY($1) 批量查询消除 N+1,用 keyset 分页替代深 OFFSET。

高级模式:CTE(含递归 CTE)、窗口函数(ROW_NUMBER/RANK/LAG/LEAD、累计与移动平均)、覆盖索引 INCLUDE、表达式索引、部分索引。

使用方式:按资料中的 SQL 示例执行 EXPLAIN、CREATE INDEX、ANALYZE、VACUUM 等命令;示例命令如 ANALYZE table_name;、VACUUM ANALYZE table_name;、EXPLAIN (ANALYZE, BUFFERS, SETTINGS, FORMAT TEXT)。

限制:资料以 PostgreSQL 为默认假设,其他数据库行为可能不同;enable_* 参数仅作诊断,不应作为长期修复;部分索引在参数化查询下可能不被使用;具体版本特性(如 GENERIC_PLAN 需 PG16+)需按版本确认。其他平台支持与收费信息暂未提供。