先有这么一个应用场景,根据条件查询单表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
如何优化,让我如此头大!请指教~
------解决思路----------------------
也就是说凌晨之后一天之内数据不会变。
那就在它调用完存储过程之后create table *** as select *** group by ***然后直接查询这个表不就完了。物化视图也是这个原理。
------解决思路----------------------
我的理解是 你每天凌晨统计下数据 这个数据直到下一天的凌晨是不会变得的话 这样 物化视图 说白了 就是一个数据 管这一天的 下一天是另一个
------解决思路----------------------
如果是这样的话,那你可以在存储过程重新生成数据之后再生成一个统计表就可以了,没必要用物化视图了。用物化视图的话,肯定要用完全刷新的方式来建,那其实和建是一个原理了。