详细分析 ▾
运行时依赖
安装命令
点击复制技能文档
数据库诊断 技能 何时使用
当用户提到以下关键词时,使用此技能:
用户说法 执行命令 说明 "数据库慢了" dbskiter --输出-mode=AI --database= 诊断 slow-queries 查看慢查询 "SQL有问题" dbskiter --输出-mode=AI --database= 诊断 sql "" 诊断特定SQL "加什么索引" dbskiter --输出-mode=AI --database= 诊断 recommend-索引es 获取索引建议 "检查一下" dbskiter --输出-mode=AI --database= 诊断 报告 全面诊断报告 "有锁吗" dbskiter --输出-mode=AI --database= 诊断 locks 查看锁情况 "性能分析" dbskiter --输出-mode=AI --database= 诊断 performance-snapshot 采集性能快照 "瓶颈分析" dbskiter --输出-mode=AI --database= 诊断 机器人tleneck 分析性能瓶颈 "CPU高" dbskiter --输出-mode=AI --database= 诊断 performance-snapshot 查看CPU指标 "IO高" dbskiter --输出-mode=AI --database= 诊断 机器人tleneck 查看IO瓶颈 数据库支持 统一性能模型支持 数据库 性能快照 瓶颈分析 慢查询 状态 MySQL 支持 支持 支持 生产就绪 Oracle 支持 支持 支持 生产就绪 PostgreSQL 支持 支持 支持 生产就绪
说明:
MySQL:支持5.7/8.0,自动降级(performance_模式 -> in格式化ion_模式 -> SHOW 状态) Oracle:支持11g/12c/19c/21c,自动降级(AWR -> V$视图 -> 基础统计),支持RAC PostgreSQL:支持10-16,自动降级(pg_stat_状态ments -> pg_stat_activity),支持pg_stat_k缓存扩展 核心命令
- 查看慢查询
默认行为:返回最近7天最慢的10个查询
可选参数:
--limit=5:只看前5条 --min-duration=0.5:超过0.5秒的查询
- 诊断SQL
输出:评分、问题列表、优化建议
- 推荐索引
默认行为:分析所有表,推荐高价值索引
可选参数:
--table=users:只分析指定表
- 查看锁
输出:当前锁等待情况
- 性能快照(新增)
输出:CPU、IO、内存、并发、锁等多维度性能指标
适用场景:
数据库整体性能评估 容量规划前的基线采集 性能问题的全面诊断
输出示例:
{ "summary": "性能快照采集完成", "data": { "snapshot": { "timestamp": "2026-04-24T10:30:00", "指标": [ { "name": "active_会话_ratio", "value": 75.5, "unit": "%", "category": "cpu", "severity": "high" } ], "slow_queries": [...], "active_会话s": 15, "total_会话s": 100 }, "机器人tlenecks": [...] } }
- 瓶颈分析(新增)
输出:自动识别性能瓶颈并给出优化建议
适用场景:
数据库性能下降时的快速诊断 定位CPU/IO/锁等具体瓶颈
输出示例:
{ "summary": "发现3个性能瓶颈", "data": { "机器人tlenecks": [ { "category": "cpu", "severity": "high", "指标": [...], "suggestion": "检查高CPU消耗的SQL,考虑优化或增加CPU资源" } ], "severity_summary": { "critical": 0, "high": 1, "medium": 2, "low": 0 }, "recommendations": [ "[cpu] 检查高CPU消耗的SQL,考虑优化或增加CPU资源" ] } }
- 综合报告
输出:慢查询 + 索引建议 + 锁情况 + 总体评分
AI决策流程 场景1:用户说"数据库慢了" 步骤1:执行 dbskiter --database= 诊断 performance-snapshot 步骤2:查看返回的机器人tlenecks,确定瓶颈类型 步骤3:如果是慢查询导致,执行 dbskiter --database= 诊断 slow-queries 步骤4:根据诊断结果,执行 dbskiter --database= 诊断 recommend-索引es 步骤5:总结给用户:"发现X个性能瓶颈,主要是XX问题,建议..."
场景2:用户说"CPU使用率很高" 步骤1:执行 dbskiter --database= 诊断 performance-snapshot 步骤2:查看指标中category为cpu的指标 步骤3:如果active_会话_ratio高,执行 dbskiter --database= 诊断 slow-queries 步骤4:给出优化建议
场景3:用户说"帮我优化这个SQL" 步骤1:执行 dbskiter --database= 诊断 sql "" 步骤2:如果评分<70,执行 dbskiter --database= 诊断 recommend-索引es 步骤3:给出优化后的SQL和建议
场景4:用户说"做个全面检查" 步骤1:执行 dbskiter --database= 诊断 performance-snapshot(查看当前性能状态) 步骤2:执行 dbskiter --database= 诊断 报告(获取综合报告)