如何提高分组查询效率

qq_35049892 2016-11-23 11:16:28
本人新手最近被oracle查询优化搞的焦头烂额,希望有大神能给点意见
查询如下:
select r.deptcode,
r.combno,
count(distinct r.phyno) as rs
from r,
s
where (r.phyno = s.phyno)and
(r.deptcode = s.deptcode)and
(r.checkdate >= to_date('2016/1/1','yyyy/mm/dd'))and
(r.checkdate <= to_date('2016/11/1','yyyy/mm/dd'))and
(s.endflag = '1')
group by r.deptcode,r.combno
因为数据量很大,分组查询至少要半分钟
...全文
379 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
js14982 2016-11-23
  • 打赏
  • 举报
回复
其实没有太多优化空间,试试并行查询吧
qq_35049892 2016-11-23
  • 打赏
  • 举报
回复
满足的有500w
js14982 2016-11-23
  • 打赏
  • 举报
回复
phy_summary 这个
js14982 2016-11-23
  • 打赏
  • 举报
回复
满足s表的数据量有多少? s表没有走索引
qq_35049892 2016-11-23
  • 打赏
  • 举报
回复
js14982 2016-11-23
  • 打赏
  • 举报
回复
看看执行计划吧,语句虽然有很多括号但是也不影响什么,就是写着麻烦
qq_35049892 2016-11-23
  • 打赏
  • 举报
回复
自己抢个沙发
qq_35049892 2016-11-23
  • 打赏
  • 举报
回复
已经加了并行了
sxq129601 2016-11-23
  • 打赏
  • 举报
回复
语句也优化不了了,只能在phy_summary上加个并行
qq_35049892 2016-11-23
  • 打赏
  • 举报
回复
去掉分组时间22s,没变快
sxq129601 2016-11-23
  • 打赏
  • 举报
回复
先把分组去除看看查询速度快不快,数据量大聚合确实会比较慢
qq_35049892 2016-11-23
  • 打赏
  • 举报
回复
exists试了,耗时变长了
qq_35049892 2016-11-23
  • 打赏
  • 举报
回复
刚才把两个表加并行查询后快了10s
sxq129601 2016-11-23
  • 打赏
  • 举报
回复
改成exists试试
qq_35049892 2016-11-23
  • 打赏
  • 举报
回复
用了并行查询速度还是差不多

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧