Language
<< 返回文章列表

zCloud × AI,让DBA的SQL优化工作易如反掌

2025年12月18日
z
C
l
o
u
d
,
A
I
,
S
Q
L
,
D
B
A
,
eygle
39

在数据库内核领域,最复杂的技术是优化器,Oracle和DB2通过强大的优化器技术,在数据库领域纵横天下。而在数据库的DBA领域,最复杂的自然也是和优化器相关的SQL优化。

如果SQL的执行效率不高,那么在高并发情况下,一条SQL就能让数据库遭遇大麻烦,甚至是灾难性的雪崩。然而SQL优化需要的技能高,专家的成长周期长,这方面的人才一直是稀缺的。

因此,云和恩墨开发了专门的SQL审核工具SQM,通过规则去筛查SQL,在开发阶段防患于未然。然而今天我想说说,大模型AI加上传统的数据库监控工具,如zCloud,是否能够让DBA如虎添翼?

我一直希望zCloud产品能作为一个DBA的智能助手,让初级工程师具备专家级别的能力,现在云和恩墨通过我们积累的DBA知识训练一个DBA AI助手,内置在zCLoud产品中。在一个客户现场,我试着把自己当场小白,对AI进行高度信任,看看这样一个产品是否能够具备生产力的提升能力。

案例1-单表访问的DELETE SQL优化

话不多说,就从TOP SQL入手,先选一个执行最慢消耗资源多的SQL。初步看,这是一条DELETE语句。从名称看,是从推送信息表中删除过期或者已经应用的数据。这里可以直接调用AI给出优化建议。但是作为一个负责任的小白,我还想慎重点。image.png

先查看一下执行计划,根据我初级的理解可知,这里的全表扫描可能是影响性能的关键。好了,我的知识就只有这么多,别的不能更懂了。

image.png

二话不说,直接让AI上。下次我应该告知它这是一个Oracle数据库。但是没关系,先让它发挥一下。注意,这里边提出了一堆建议。第一个非常好,系统提示这表建的不规范,使用了一个系统保留字“Function",没办法,程序员总是很随意的。已经上车了,改不了这个。

image.png

我就看全表扫描它怎么建议,毫无疑问是索引。AI助手给出了可执行的SQL语句。我们可以调用MCP直接执行。但是为了慎重起见,也不要在生产运行的峰值期间执行,切记切记。但是我选择了相信,先把索引建上。

image.png

优化后的效果呈现如图所示,在新的执行计划下,单次的SQL执行时间从1秒缩短到0.7毫秒,执行40次的时间仅为0.028秒,这是1400倍的提升。

我们可以看到一个索引对于一个应用的功能是立竿见影的。DBA SQL优化三板斧:索引、索引、索引

image.png

案例2-一个复杂点的INSERT SQL

案例1的SQL非常简单,我们看一个稍微复杂点的SQL。一个包含WITH子句的INSERT操作。这次挑了2个表,只关心如何优化索引。ES 20251210 at 17.11.46.png

AI给出了索引语句。话说这个SQL比较复杂,如果DBA来格式化、分析,还是需要不少时间的。AI助手给出的第一个语句,通过索引优化NOT EXISTS查询,还包括其他建议。但是先忽略了。主要看看第一个索引是否有效。ES 20251210 at 17.12.31.png

我们来看看增加了这个索引前后的效率对比,大约是150倍的性能提升。也可以了,没用几分钟时间就有了这样的效果。ES 20251209 at 10.45.47.png

案例3-更复杂的多表关联查询

既然有效率,就多尝试。在客户系统中,又发现一个历史悠久的查询语句。看起来比较复杂:ES 20251209 at 10.59.16.png

粗看一下执行计划,等待最长的时一个历史数据表,CPU_COST有11亿之多,就在这个位置下手,给AI助手一个指向:ES 20251209 at 10.59.29.png

作为一个初级DBA,我不用再瞪眼分析SQL了。到底有多少个字段在使用。AI助手马上给出了一个索引建议(注意:其他建议也很有建设性,但是我只信索引),建上再说:ES 20251209 at 11.02.28.png

看结果,索引生效了:ES 20251210 at 15.04.13.png

SQL执行时间从184毫秒变成了7毫秒,是26倍的性能提升。ES 20251210 at 15.10.12.png

总结

一个生产力工具应该具备哪些特征和能力?

从数据库SQL优化来看,我认为核心能力应聚焦于诊断深度、改进精度和协作效率

1. 自动化性能诊断与根因定位

  • 无需人工干预,智能捕获执行计划、IO/CPU消耗等信息,自动识别慢查询、资源瓶颈和架构缺陷

2. 可落地的智能优化建议

  • 给出精准、安全、可执行的改进方案,而非泛泛而谈

3. 低门槛的协作与知识沉淀

  • 让DBA、开发和运维在同一平台高效协同,经验不随人员流失而丢失

优秀的工具不仅是“扫描器”,更是诊断专家+改进顾问+协作中枢,将个体经验转化为团队生产力。zCloud正处于这一路线上。从我的感觉上,有了AI助手,让我的SQL优化效率大幅提升,抛弃了枯燥的SQL格式化、查询谓词分析,只需要识别和提示一下关键的方向,AI就能给出可参考的建议。这样的交互过程中,探索的乐趣极大增加。

AI在这一优化流程中,真正做到了让专家聚焦在更有价值的判断上,而不是低价值的体力劳动。 zCloud这样的能力,可以让任何初级数据库知识的DBA,如虎添翼,百倍效率提升。