用途:对代码库执行数据库性能审计,覆盖 N+1 检测、EXPLAIN 分析、慢查询日志审查、索引缺口、连接机会与按端点调用次数统计。
主要能力与流程:
- 检查 DBMAP.md 是否存在,命令为 [ -f DBMAP.md ] && echo "DBMAP_EXISTS=true" || echo "DBMAP_EXISTS=false"。若不存在需先运行 /dbmap。
- 慢查询日志:PostgreSQL 可查 pg_stat_statements,MySQL 可查 slow_query_log 变量;不可用时扫描代码库中日志文件。报告最慢 10 条查询,含调用次数、平均与总耗时。
- EXPLAIN 分析:对慢查询执行 EXPLAIN (ANALYZE, BUFFERS, FORMAT TEXT),标记大表 Seq Scan、高行数 Nested Loop、高内存 Hash Join、无索引 Sort、估算与实际行数偏差等。
- N+1 检测:扫描循环内的数据库调用(.find、.where、.query、.fetch、.get、.filter、.select)以及循环中访问未预加载的关联,建议使用 includes/eager_load/preload。
- 按端点审计:统计路由处理器中的直接 SQL 与 ORM 调用,循环内调用按 N 次计,超过 3 次列为优化候选。
- 连接机会:识别两次顺序查询可合并为 LEFT JOIN 的模式。
- 汇总报告:按 Critical、High Priority、Optimization Opportunities 分级并给出后续步骤,最后询问用户是否实施修复。
限制:资料未提供支持的数据库版本范围、具体性能基准、收费或价格信息,也未说明在无 DBMAP.md、无数据库访问权限时的完整降级方案。