SuperAPI AI 工具集

sql-schema-audit

数据与分析

查看项目

更新于 10-16 01:17

技能介绍

用途:面向两类常见 DBA 评审任务——找出缺失索引的位置,以及定位可能产生 N+1 的代码。审计仅检查 sqlc 管理的查询。

主要能力:index-coverage.mjs 按查询逐条归因 SCAN,标记完全没有索引的表(FIX),并列出可删除候选索引、外键 CASCADE 承重索引(SQLite 不会自动为外键列建索引,删除这类索引会拖慢级联删除)。n-plus-one.mjs 用正则扫描 for 循环中调用 sqlc 生成函数的情况。

用法:node scripts/index-coverage.mjs --schema 路径 --queries 路径 [--out 路径];省略 --out 时报告打印到 stdout,报告本身即交付物。node scripts/n-plus-one.mjs 源码目录,可用 --callee-prefix、--window 调整。

适用场景:模式变更后、发布前做未使用索引盘点、新增涉及数据库的 for 循环时评审。

限制:需 Node 22 及以上(使用 node:sqlite)和 sqlc 风格查询目录;不检查 schema 漂移、CHECK/NOT NULL,SQLite 不支持静态 EXPLAIN ANALYZE 实际行数;内联 SQL 绕过审计,删除候选前需 grep 确认,N+1 报告仅供参考、不作 CI 门禁。