🤖 自主Oracle DBA代理(MCP+SQLcl实验)
实验: 人工智能能否自主诊断、修复和报告Oracle数据库中的性能问题?
这个项目展示了一个真实的 代理工作流,其中AI模型(Claude Haiku 4.5)连接到 Oracle数据库26ai 实例通过 模型上下文协议(MCP) 和 SQLcl.
Agent被授予完全的数据库访问权限和一个高级命令: *“查找慢速查询并修复它们。”* 我没有手动编写一行补救SQL代码。
______________________________________________________________________
📊 现场演示结果
代理自主生成了以下报告作为工作证明。这些报告直接来自此存储库:
🚀 查看完整的技术报告(HTML)
*带有Chart.js可视化的交互式仪表板,显示“之前”和“之后”分析。*
📄 查看执行摘要(HTML)
*报告的业务就绪版本,格式化为打印/PDF导出。*
______________________________________________________________________
📉 主要代理业绩
在一次5分钟的自主会话中,Agent实现了以下目标:
| 检测到问题 | 代理诊断 | 应用解决方案 | CBO成本影响 | 改进 |
|---|---|---|---|---|
| 问题2 (VIP加入) | 缺少FK索引,全表扫描 | 已创建索引 IDX_DEMO_CUSTOMERS_SEGMENT | 2,200 ➔ 414 | -81.2% 📉 |
| 问题3 (Top-N排序) | 昂贵的内存排序(PGA) | 创建索引 IDX_ORDER_ITEMS_UNIT_PRICE_DESC | 11,492 ➔ 3 | -99.97% 🚀 |
______________________________________________________________________
🛠️ 解决方案架构
这不仅仅是“文本到SQL”。这是一个AI在实时运行时环境中执行命令的系统。
- 数据库: Oracle数据库26ai(免费开发版)
- 接口: VS Code+GitHub Copilot(充当MCP客户端)
- 工具: Oracle SQLcl(与
-mcp旗帜) - 逻辑: 自主决策循环(OODA:观察、定向、决策、行动)
工作流程:
- 分析: 代理运行
EXPLAIN PLAN对于所提供的工作量。 - 决定: 它检测
TABLE ACCESS FULL操作和阻塞功能WHERE条款。 - 法案: 它执行DDL(
CREATE INDEX...)直接在数据库上。 - 验证: 它重新运行测试以比较指标。
- 报告: 它生成带有结果的HTML/JSON文件。
______________________________________________________________________
📂 存储库结构
/docs-AI生成的HTML报告(可通过GitHub Pages公开访问)。/sql-用于环境设置和工作负载模拟的SQL脚本。/metrics-包含性能指标的原始CSV数据。
______________________________________________________________________
📞 联系方式/关于
创建此项目是为了测试当前LLM在数据库工程任务中的局限性。
https://www.linkedin.com/in/krzysztof-cabaj-16b6a52/
