本文主要介绍AI智能体自驱动完成SQL审核优化的场景。首先我们给AI设置了执行时间减少为原先1000倍的优化目标,并将待优化的SQL提供给AI进行优化,AI思考后给出优化方案并自行验证(auto模式)。AI通过优化函数和减少重复扫描,使执行SQL时间达到预期,优化完成。点击查看视频
优化前语句
select empno as 编号, ename as 姓名, sal as 工资, hiredate as 聘用日期, (select sum(b.sal) from emp b where b.deptno=8 and b.hiredate<= a.hiredate) as 合计工资 from emp a where a.deptno =8 order by hiredate;
优化说明
- 使用窗口函数:
- 通过 SUM(sal) OVER (ORDER BY hiredate) 计算累计工资,避免了子查询的重复计算,提高了性能。
- 减少重复扫描
- 原SQL中的子查询会对 emp 表进行多次扫描,而优化后的SQL只扫描一次。
- 可读性提升:
- 使用 WITH 子句(CTE)使逻辑更清晰。
- 预期效果:
执行时间显著减少(原SQL执行时间为139156ms)。结果与原SQL一致,但计算效率更高。
优化后语句
WITH cumulative_salary AS ( SELECT hiredate, SUM(sal) OVER (ORDER BY hiredate) AS running_total FROM emp WHERE deptno = 8)SELECT a.empno AS 编号, a.ename AS 姓名, a.sal AS 工资, a.hiredate AS 聘用日期, cs.running_total AS 合计工资FROM emp aJOIN cumulative_salary cs ON a.hiredate = cs.hiredateWHERE a.deptno = 8ORDER BY a.hiredate;
最终优化结果
| 指标 | 优化前 | 优化后 | 提升幅度 |
|---|---|---|---|
| 执行时间 | 139156ms | 89ms | 1564倍 |
通过司南AI优化,执行效率已实现1000倍以上的性能优化!AI模型迭代升级中,即将迎来更强劲的表现,如果您想提前感受司南AI的强大性能,欢迎立即联系我们,申请试用版!
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




