暂无图片
SQL的三段分拆法?
我来答
分享
中天
2023-04-03
SQL的三段分拆法?

SQL的三段分拆法?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新

如果要优化的SQL很长,可以将SQL拆分为三段,这要就能快速判断SQL在写法上是否容易产生性能问题。下面就是SQL三段拆分方法。

select ....第一段.... from ....第二段.... where ....第三段....

select 与from之间最好不要有标量子查询,也不要有自定义函数。因为有标量子查询或者是自定义函数,会导致子查询或者函数中的表被反复扫描。

from与where之间要关注大表,因为大表很容易引起性能问题;同时要留意子查询和视图,如果有子查询或者视图,要单独运行,看运行得快或是慢,如果运行慢需要单独运行;另外要注意子查询/视图是否可以谓词推入,是否视图合并;最后还要留意表与表之间是内连接还是外连接,因为外连接会导致嵌套循环无法改驱动表。

where后面需要特别注意子查询,要能判断各种子查询写法是否可以展开(unnest),同时也要注意where过滤条件,尽量不要在where过滤列上使用函数,这样会导致列不走索引。

在工作中,要养成利用SQL三段分拆方法的习惯,这样能大大提升SQL优化的速度。

暂无图片 评论
暂无图片 有用 6
暂无图片
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏