110与chatgpt探讨SQL优化

2023年 11月 20日 25.5k 0

我问chatgpt, 能不能帮我优化下面的SQL:

chatgpt给我回复了下面结果:

我看了这个写法, 跟原SQL不等价,于是它又做了调整:

上面这个回答明显还是不等价,但是有求必应的chatgpt硬着头皮也要回复,于是又变成了下面这样:

我又质疑它的不等价,这次好像终于等价了,但是与原来的SQL在性能上应该是没什么区别的, 逻辑上还略显复杂:

我不想难为它了, 把我的写法给了它:

chatgpt对我的写法做了点评:

我还尝试了另外一种使用分析函数的写法:

相比之下, 前面的group by写法要略好一些(分析函数消耗内存较多).两种改写方法都只需要一次表扫描,而且去掉了union的去重操作, 比原SQL写法有明显的改进.

总结:

   chatgpt能辅助做很多事情, 但是有些严谨的事情, 还是要慎重, 比如SQL改写的等价性等, 如果不具备分辨能力,很容易得出不等价的优化方法. 

   SQL写法对数据库性能至关重要,很多开发人员只追求实现业务逻辑,较少考虑性能问题, 数据量一旦增大, 业务执行效率快速下降,然后又把希望寄托在硬件的改善, 这些都是不可取的.

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论