问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏
SQL的三段分拆法?
如果要优化的SQL很长,可以将SQL拆分为三段,这要就能快速判断SQL在写法上是否容易产生性能问题。下面就是SQL三段拆分方法。
select ....第一段.... from ....第二段.... where ....第三段....
select 与from之间最好不要有标量子查询,也不要有自定义函数。因为有标量子查询或者是自定义函数,会导致子查询或者函数中的表被反复扫描。
from与where之间要关注大表,因为大表很容易引起性能问题;同时要留意子查询和视图,如果有子查询或者视图,要单独运行,看运行得快或是慢,如果运行慢需要单独运行;另外要注意子查询/视图是否可以谓词推入,是否视图合并;最后还要留意表与表之间是内连接还是外连接,因为外连接会导致嵌套循环无法改驱动表。
where后面需要特别注意子查询,要能判断各种子查询写法是否可以展开(unnest),同时也要注意where过滤条件,尽量不要在where过滤列上使用函数,这样会导致列不走索引。
在工作中,要养成利用SQL三段分拆方法的习惯,这样能大大提升SQL优化的速度。
评论
有用 6
墨值悬赏