暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

花了近一周时间用AI编程手搓的AWR报告AI分析工具做成什么样了?

白鳝的洞穴 2025-10-30
257

上周出差的空闲突然脑洞一开,想开发一个AWR报告AI分析工具。我上周也发文说AWR报告是个宝库,包含了两百多个表格的数据,十分详尽地描述了ORACLE数据库在报告期间的各种状态。用工具去分析AWR报告曾经是每个Oracle DBA的心愿,不过因为分析过程过于复杂,目前市面上能看到的AWR分析工具都差强人意。Oracle其实也提供了AWR的分析工具,那就是ADDM,不过不是基于报告的,而是直接从AWR的元数据入手,直接进行问题发现。

十多年前,我曾经安排过团队中的两个新手做过一个AWR分析工具,希望做好后发给在一线做优化项目的工程师,解决他们分析AWR报告的能力不足。我和那两个略懂Oracle数据库的JAVA工程师一起工作了2-3个月,10g、11g的报告能够正确上传,近200个表格数据也能正常提取,不过在分析的时候遇到了问题。我刚开始写了一个算法,写算法的时候就越写越纠结,最后只能简化,否则各种数据之间的关系就乱得不行了,开发人员根本无法理解里面的复杂关系。简化了之后开发人员还是无法实现复杂的逻辑,再次做了简化,总算是搞出来了,试了一下,有些用,但是深度不够。于是不断再往里添加知识,优化结果,加到一定程度后这个项目就干不下去了。

不过AI时代来临,这一切都变了,在Cursor的帮助下,我开始了工具开发,上传数据,提取数据的工作只花了一个小时就ok了,甚至我试了下,11g-19c都能够完美提取。而且误打误撞,在我的提示词的逼迫下,Cursor居然写出了动态数据集的全局数据变量算法,不同数据库版本的AWR报告中的数据可以变化,程序都可以灵活解析数据,存储数据。随后就是通过输入我的分析知识,不断对各种数据进行分析,找出疑点,定期汇总,通过一层层汇总,最后生成正式的报告。

这周一开始,我花了三天时间把一些主要的分析点通过与Cursor对话,变成了5300多行代码。晚上下班的时候,还有一些语法错误需要纠正。老婆在电话里问我到哪了,我才发现已经快7点了,我还坐在办公室里兴奋地调试着程序。

晚饭后心里还是挂着那个马上就能看到结果的工具,于是打开家里的电脑,从GIT上下载代码。我们现在采用远程开发的方式,开发人员可以不去办公室上班,因此随时随地都可以工作。这是我以前看Andy写的racle story 1984-2001》后得到的启示,Oracle从成立之初,就给每个核心研发的程序员配备了一个Modem,让他们可以随时随地开展工作,拉里也允许他们不到公司上班,这个政策让Oracle的核心开发效率大大提升了。 

GIT下载了最新数据后我才发现办公室的电脑没有提交,代码还是几个小时之前的代码。当时的心情十分糟糕,后来想到测试环境中有一份我的最新代码,于是从测试环境把代码拷贝回来,继续了工作。在Cursor帮助下,所有的语法错误都很快解决掉了,我也看到了结果。虽然目前的结果还存在一些错误,很多地方还不够严谨,不过随着对每个知识点的认真打磨,工具会变得越来越像我的思维。我想把我和我身边的高手分析AWR报告的技巧和思路都一点点融入到这个工具中去,最终把这个工具开放到BIC-QA工具里,为DBA服务。下面来看看生成的报告的内容把。



文章转载自白鳝的洞穴,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论