暂无图片
优化SQL语句
我来答
分享
倪宾
2020-08-10
优化SQL语句
暂无图片 5M

SQL语句:
select fb.hbbm fb_hbbm,
sum(fb.jfshl) jfshlje,
sum(fb.jfybje) jfybje,
sum(fb.jffbje) jffbje,
sum(fb.jfbbje) jfbbje,
sum(fb.dfshl) dfshlje,
sum(fb.dfybje) dfybje,
sum(fb.dffbje) dffbje,
sum(fb.dfbbje) dfbbje,
0.0 qmshlye,
0.0 qmybye,
0.0 qmfbye,
0.0 qmbbye
from arap_djzb zb
inner join arap_djfb fb on fb.vouchid = zb.vouchid
where zb.dwbm = ‘1003’
and fb.dwbm = ‘1003’
and zb.hzbz = ‘-1’
and zb.dr = 0
and fb.dr = 0
and fb.xgbh = -1
and ((zb.djdl = ‘ys’) or (zb.djdl = ‘sk’))
and ((fb.djdl = ‘ys’) or (fb.djdl = ‘sk’))
and zb.djrq >= ‘2020-06-26’
and zb.djrq <= ‘2020-07-25’
and fb.billdate >= ‘2020-06-26’
and fb.billdate <= ‘2020-07-25’
and ((zb.djzt > -99))
and fb.wldx = 0
and ((fb.hbbm is not null))
group by fb.hbbm

1.jpg2.jpg

这句SQL该如何优化?

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

首先,确认统计信息是否准确
其次,如果统计信息正确,那么给出这些表的大小,以及几个重要过滤条件单独执行时获取的数据量,例如 zb.djrq >= ‘2020-06-26’ and zb.djrq <= ‘2020-07-25’
也就是要看哪个条件能过滤掉更多数据
还有,如果有可能,做个高级别的10046跟踪,看看执行计划中的哪一步等待时间很长,从而确定哪一步或哪几步是整个执行计划中代价最高的
这些都确定了,才能做进一步的判断。

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