Skill: magicczc/dbskiter-db-diagnose (version 1.0.0)

--- name: db-diagnose description: | 数据库诊断与优化，支持SQL诊断、慢查询分析、索引推荐、性能快照。 使用场景： - 用户说"数据库慢了" -> 执行 slow-queries - 用户说"SQL有问题" -> 执行 sql "<SQL>" - 用户说"推荐索引" -> 执行 recommend-indexes - 用户说"全面检查" -> 执行 report - 用户说"性能分析" -> 执行 performance-snapshot - 用户说"瓶颈分析" -> 执行 bottleneck 用法： - dbskiter --output-mode=ai --database=<name> diagnose slow-queries - dbskiter --output-mode=ai --database=<name> diagnose sql "SELECT * FROM users" - dbskiter --output-mode=ai --database=<name> diagnose recommend-indexes - dbskiter --output-mode=ai --database=<name> diagnose report - dbskiter --output-mode=ai --database=<name> diagnose performance-snapshot - dbskiter --output-mode=ai --database=<name> diagnose bottleneck --- # 数据库诊断 Skill ## 何时使用 当用户提到以下关键词时，使用此skill： | 用户说法 | 执行命令 | 说明 | |---------|---------|------| | "数据库慢了" | `dbskiter --output-mode=ai --database=<name> diagnose slow-queries` | 查看慢查询 | | "SQL有问题" | `dbskiter --output-mode=ai --database=<name> diagnose sql "<SQL>"` | 诊断特定SQL | | "加什么索引" | `dbskiter --output-mode=ai --database=<name> diagnose recommend-indexes` | 获取索引建议 | | "检查一下" | `dbskiter --output-mode=ai --database=<name> diagnose report` | 全面诊断报告 | | "有锁吗" | `dbskiter --output-mode=ai --database=<name> diagnose locks` | 查看锁情况 | | "性能分析" | `dbskiter --output-mode=ai --database=<name> diagnose performance-snapshot` | 采集性能快照 | | "瓶颈分析" | `dbskiter --output-mode=ai --database=<name> diagnose bottleneck` | 分析性能瓶颈 | | "CPU高" | `dbskiter --output-mode=ai --database=<name> diagnose performance-snapshot` | 查看CPU指标 | | "IO高" | `dbskiter --output-mode=ai --database=<name> diagnose bottleneck` | 查看IO瓶颈 | ## 数据库支持 ### 统一性能模型支持 | 数据库 | 性能快照 | 瓶颈分析 | 慢查询 | 状态 | |-------|---------|---------|--------|------| | MySQL | 支持 | 支持 | 支持 | 生产就绪 | | Oracle | 支持 | 支持 | 支持 | 生产就绪 | | PostgreSQL | 支持 | 支持 | 支持 | 生产就绪 | **说明**： - MySQL：支持5.7/8.0，自动降级（performance_schema -> information_schema -> SHOW STATUS） - Oracle：支持11g/12c/19c/21c，自动降级（AWR -> V$视图 -> 基础统计），支持RAC - PostgreSQL：支持10-16，自动降级（pg_stat_statements -> pg_stat_activity），支持pg_stat_kcache扩展 ## 核心命令 ### 1. 查看慢查询 ```bash dbskiter --database=<数据库名> diagnose slow-queries ``` **默认行为**：返回最近7天最慢的10个查询 **可选参数**： - `--limit=5`：只看前5条 - `--min-duration=0.5`：超过0.5秒的查询 ### 2. 诊断SQL ```bash dbskiter --database=<数据库名> diagnose sql "SELECT * FROM users WHERE email = '[REDACTED_SECRET]'" ``` **输出**：评分、问题列表、优化建议 ### 3. 推荐索引 ```bash dbskiter --database=<数据库名> diagnose recommend-indexes ``` **默认行为**：分析所有表，推荐高价值索引 **可选参数**： - `--table=users`：只分析指定表 ### 4. 查看锁 ```bash dbskiter --database=<数据库名> diagnose locks ``` **输出**：当前锁等待情况 ### 5. 性能快照（新增） ```bash dbskiter --database=<数据库名> diagnose performance-snapshot ``` **输出**：CPU、IO、内存、并发、锁等多维度性能指标 **适用场景**： - 数据库整体性能评估 - 容量规划前的基线采集 - 性能问题的全面诊断 **输出示例**： ```json { "summary": "性能快照采集完成", "data": { "snapshot": { "timestamp": "2026-04-24T10:30:00", "metrics": [ { "name": "active_session_ratio", "value": 75.5, "unit": "%", "category": "cpu", "severity": "high" } ], "slow_queries": [...], "active_sessions": 15, "total_sessions": 100 }, "bottlenecks": [...] } } ``` ### 6. 瓶颈分析（新增） ```bash dbskiter --database=<数据库名> diagnose bottleneck ``` **输出**：自动识别性能瓶颈并给出优化建议 **适用场景**： - 数据库性能下降时的快速诊断 - 定位CPU/IO/锁等具体瓶颈 **输出示例**： ```json { "summary": "发现3个性能瓶颈", "data": { "bottlenecks": [ { "category": "cpu", "severity": "high", "metrics": [...], "suggestion": "检查高CPU消耗的SQL，考虑优化或增加CPU资源" } ], "severity_summary": { "critical": 0, "high": 1, "medium": 2, "low": 0 }, "recommendations": [ "[cpu] 检查高CPU消耗的SQL，考虑优化或增加CPU资源" ] } } ``` ### 7. 综合报告 ```bash dbskiter --database=<数据库名> diagnose report ``` **输出**：慢查询 + 索引建议 + 锁情况 + 总体评分 ## AI决策流程 ### 场景1：用户说"数据库慢了" ``` 步骤1：执行 dbskiter --database=<name> diagnose performance-snapshot 步骤2：查看返回的bottlenecks，确定瓶颈类型 步骤3：如果是慢查询导致，执行 dbskiter --database=<name> diagnose slow-queries 步骤4：根据诊断结果，执行 dbskiter --database=<name> diagnose recommend-indexes 步骤5：总结给用户："发现X个性能瓶颈，主要是XX问题，建议..." ``` ### 场景2：用户说"CPU使用率很高" ``` 步骤1：执行 dbskiter --database=<name> diagnose performance-snapshot 步骤2：查看metrics中category为cpu的指标 步骤3：如果active_session_ratio高，执行 dbskiter --database=<name> diagnose slow-queries 步骤4：给出优化建议 ``` ### 场景3：用户说"帮我优化这个SQL" ``` 步骤1：执行 dbskiter --database=<name> diagnose sql "<SQL>" 步骤2：如果评分<70，执行 dbskiter --database=<name> diagnose recommend-indexes 步骤3：给出优化后的SQL和建议 ``` ### 场景4：用户说"做个全面检查" ``` 步骤1：执行 dbskiter --database=<name> diagnose performance-snapshot（查看当前性能状态） 步骤2：执行 dbskiter --database=<name> diagnose report（获取综合报告） ```


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)