mcpField
P
process-db-report

process-db-report

github.com/blogic-cz数据与数据库371 次安装1 天前更新
代码仓库

关于 process-db-report

用于分析数据库可观测性报告并为 Drizzle ORM 代码库制定优化计划的 skill。它会检查报告完整性,按证据检测和排序问题,并通过安全规则约束索引与 schema 建议。

主要功能

  1. 01解析并验证可观测性报告
  2. 02检测并排列数据库问题
  3. 03生成优先级行动计划
  4. 04执行索引移除安全检查
  5. 05提出 Drizzle schema 更改建议

适用场景

  1. 01分诊数据库可观测性发现
  2. 02规划 Drizzle schema 索引调整
  3. 03在提出建议前识别缺失报告部分

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/blogic-cz/blogic-marketplace --skill process-db-report

安装后在 Claude Code 中输入/process-db-report确认已加载。

附带文件references/action-plan-template.md

详细介绍

数据库性能报告处理

分析数据库可观测性报告,并为 Drizzle ORM 代码库制定按优先级排序的优化计划。

分诊工作流

  1. 解析报告 — 从粘贴的可观测性报告中提取结构化数据。
  2. 验证报告完整性 — 在提出建议前,找出缺失的部分。
  3. 分析问题 — 使用基于证据的规则检测影响较大的问题。
  4. 确定优先级 — 按影响程度(高/中/低)排列问题。
  5. 生成行动计划 — 提出具体、安全的任务,并提供架构层面的指导。

不完整报告的处理方式

  • 缺少必要数据时,先询问缺失的部分,不要猜测。
  • 仅请求针对受阻建议所需的缺失部分。
  • 有部分数据时,将建议标记为有条件。

完整分诊所需的部分:

  • 表统计信息
  • 高频顺序扫描
  • 未使用/很少使用的索引
  • 缺少索引的外键
  • 缓存命中率

问题检测启发式规则

严重问题(立即处理)
问题检测规则操作
表膨胀表统计信息中的死行数 >10%通过 /app/admin/observability UI 执行 VACUUM
索引覆盖不足/缺失索引使用率 <50%,且顺序扫描频繁,并且已知查询存在筛选/排序模式仅在验证查询模式后,才在 packages/db/src/schema.ts 中提出索引策略
缺少索引的外键外键列没有对应索引在 schema.ts 中添加索引
中优先级(下个迭代)
问题检测规则操作
未使用的索引在指定的工作负载时间段内,非唯一索引的使用率较低仅在验证实际查询路径并完成安全检查后,才从 schema.ts 中移除
重复索引多个索引覆盖相同列移除冗余索引
低优先级(监控)
问题检测规则操作
缓存命中率低于 99%先调查工作负载和缓存行为;将 shared_buffers 调优作为可选的基础设施级后续措施

预期报告格式

Table Statistics:
| table_name | total_size | dead_rows | dead_ratio_pct |
|------------|------------|-----------|----------------|
| users      | 2048 MB    | 15000     | 12.5           |

High Sequential Scans:
| table_name | sequential_scans | index_usage_pct |
|------------|------------------|-----------------|
| sessions   | 45000            | 25              |

Unused/Rarely Used Indexes:
| index_name           | times_used | index_size |
|---------------------|------------|------------|
| idx_old_feature     | 2          | 5 MB       |

Foreign Keys Without Indexes:
| table_name | column_name | suggested_index |
|------------|-------------|-----------------|
| posts      | user_id     | CREATE INDEX... |

Cache Hit Ratio:
| cache_hit_ratio_pct |
|---------------------|
| 97.5                |

索引安全规则

绝不删除以下索引:

  • 主键(*_pkey)
  • 唯一约束(*_unique)
  • 业务逻辑约束(例如,organizations_slug_unique)

可以安全删除:

  • 在具有代表性的工作负载时间窗口内(例如,根据流量模式选择 7-30 天),使用率始终较低的非唯一索引
  • 冗余索引(已被复合索引覆盖)

删除前检查(必需):

  • 在判定某个索引未被使用之前,验证工作负载时间窗口的覆盖情况。
  • 在删除之前,从真实应用路径(API 端点、后台任务、cron 流程)验证查询路径的使用情况。
  • 确认不存在通过约束、迁移或运维工作流产生的隐藏依赖。
  • 如果缺少查询路径验证数据,建议应附带条件。

安全删除示例:

// oauth_consents has composite unique(userId, clientId)
// So single-column index on clientId alone is redundant
index("oauth_consents_client_id_idx"); // SAFE TO REMOVE

行动计划模板

加载并遵循 references/action-plan-template.md,以获取完整的输出结构和措辞。


重要规则

  • 引用实际文件路径(packages/db/src/schema.ts)
  • 为 schema 变更提供精确的代码片段
  • 按影响程度排序(无效行 > 缺失索引 > 未使用索引)
  • 绝不建议临时编写 SQL——schema.ts 是唯一事实来源
  • 在末尾包含工作流步骤
  • 仅当报告提供了足够数据、能够支持可信估算时,才估算改进幅度
  • 将 shared_buffers 调优视为可选的基础设施指导,仅在需要升级处理时提供

相关技能

  • performance-optimization — Effect 并行模式、N+1 修复、批量操作
  • drizzle-database — Schema 模式、迁移、关联关系
  • production-troubleshooting — Kubernetes 性能调试

评论

支持 Markdown