专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Oracle管理

请问Oracle,如当采用多字段group by 查询效率出路在哪里

发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
请教Oracle,如当采用多字段group by 查询效率出路在哪里?
先有这么一个应用场景,根据条件查询单表A,语句如下:

select sum(a.销售数量),sum(a.库存),a.国家,a.地市,a.年,a.时间,a.产品,....(大概10多个字段) from A a by a.国家,a.地市,a.年,a.时间,a.产品,....(大概10多个字段) order by a.产品,a.年


进入这个项目组直接丟了几个模块过来,你去优化吧.......
功能响应时间在8-12秒左右,分析下前代码发现瓶颈在数据库中,数据库中执行语句7-10左右

表A数据量1000W-1500W 左右 每天凌晨会删除掉
项目采用Struts2+EJB+Ibatis+Oracle

如何优化,让我如此头大!请指教~

------解决思路----------------------
引用:
感谢你的回答、还有个问题问下:
表A每天凌晨会吧数据全部delete掉,每天凌晨调用一个存储过程重新集成数据,没有新增、修改、删除的用户操作,这种物化视图是创建那种方式最为合理?帮忙详细解释下、物化视图没怎么接触过,再次感谢;


也就是说凌晨之后一天之内数据不会变。

那就在它调用完存储过程之后create table *** as select *** group by ***然后直接查询这个表不就完了。物化视图也是这个原理。
------解决思路----------------------
我的理解是 你每天凌晨统计下数据 这个数据直到下一天的凌晨是不会变得的话 这样 物化视图 说白了 就是一个数据 管这一天的 下一天是另一个
------解决思路----------------------
引用:
Quote: 引用:

没有where条件?对全表(1000W级)进行GROUP BY和聚合?如果是这样的话,数据库级的优化效率也不会太高。对于这种统计数据的优化,ORACLE提供了最好的解决办法--物化视图。



感谢你的回答、还有个问题问下:
表A每天凌晨会吧数据全部delete掉,每天凌晨调用一个存储过程重新集成数据,没有新增、修改、删除的用户操作,这种物化视图是创建那种方式最为合理?帮忙详细解释下、物化视图没怎么接触过,再次感谢;


如果是这样的话,那你可以在存储过程重新生成数据之后再生成一个统计表就可以了,没必要用物化视图了。用物化视图的话,肯定要用完全刷新的方式来建,那其实和建是一个原理了。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: