就教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若何优化,让我如斯头年夜!请指教~

第1个回答  2013-09-23
那就在它挪用完存储过程之后create table *** as select *** group by ***然后直接发芽这个表不就完了。物化视图也是这个事理。也就是说凌晨之后一天之内数据不会变。
第2个回答  2013-09-23
没有where前提?对全表(1000W级)进行GROUP BY和聚合?如不美观是这样的话,数据库级的优化效率也不会太高。对于这种统计数据的优化,ORACLE供给了最好的解决法子--物化视图。本回答被网友采纳
第3个回答  2013-09-23
感谢感动你的回覆、还有个问题问下:表A天天凌晨会吧数据全数delete失踪,天天凌晨挪用一个存储过程年夜头集成数据,没有新增、改削、删除的用户操作,这种物化视图是建树那种体例最为合理?辅佐具体解晗�、物化视图没怎么接触过,再次感谢感动;
第4个回答  2013-09-23
如不美观数据的实时性要求不高的话 可以考虑按时几分钟执行一次 将结不美观存入小表中以对外供给
第5个回答  2013-09-23
按照 group by 后的字段建树索引。

...oracle sum group by 分组字段多了以后的执行效率问题
4等到没人用数据库的时候才汇总,比如下班后,半夜等

零基础学Oracle-使用GROUP BY进行多字段分组
此实例中,分组条件包括部门编号(deptno)与职位(job)。将deptno与job放入GROUP BY子句中,即可统计出每个部门各种职位的平均工资与最高工资。

Oracle Day02 Order by_group by_字段_函数_sql语句顺序
Order by 关键字用于对查询结果进行排序。在决定升序还是降序时,可以在Order by后跟列名,并在列名后加上ASC或DESC关键字。如果列值相同,可以使用Order by子句中的其他列进行排序。创建字段时,计算字段是通过+,-,*,\/操作和列进行计算得到的列。获取员工的年薪可以通过查询员工的年薪字段来实现。集合...

oracle中,还是不甚明白order by和group by的用法
group by 是分组 首先用group by 的前提是你的select里边用了聚合函数如sum(),avg(),min(),max()没有聚合函数用不了group by会报错 其次 出现在select里边的除聚合函数以外的所有字段 都必须作为group by的条件 出现在group by中的字段可以不select出来 也就是说 select中的字段必须出现在group by...

oracle group by 性能优化
ORDER BY 4 DESC;(17) 用索引提高效率:索引是表的一个概念部分,用来提高检索数据的效率,ORACLE使用了一个复杂的自平衡B-tree结构. 通常,通过索引查询数据比全表扫描要快. 当ORACLE找出执行查询和Update语句的最佳路径时, ORACLE优化器将使用索引. 同样在联结多个表时使用索引也可以提高效率. 另一个使用索引的...

oracle中group by用法
1,在select 语句中可以使用group by 子句将行划分成较小的组,一旦使用分组后select操作的对象变为各个分组后的数据,使用聚组函数返回的是每一个组的汇总信息。使用having子句限制返回的结果集。group by 子句可以将查询结果分组,并返回行的汇总信息Oracle 按照group by 子句中指定的表达式的值分组查询...

请问oracle脚本高手,如果用group by 汇总查询时,必须每个字段都group by...
用窗口函数就行了。select ename,sum(sal) over(partition by deptno ),deptno from EMP order by 2 ;

oracle如何提高大数据group by 的效率
-- CREATE TEMPORARY TABLESPACE tempindex tempfile 'filename' SIZE 20G ;-- ALTER USER username TEMPORARY TABLESPACE tempindex;REM PARALLEL_EXECUTION_MESSAGE_SIZE can be increased to improve throughput.REM but need restart instance,and should be same in RAC environment REM this doesn't ...

oracle group by 多个字段 求合的相关问题
round((countdelayed\/countontimeair)*100,2)这个时候是还不能用countdelayed,countontimeair字段的,要在外面加一层;count(case when air_date = '2013-10-21'then 1 else 0 end)这里你的本意是用sum的吧?count可能不是你想要的结果.

oracle数据库中如何达到像mysql数据库中group by 那种去重的效果...
oracle和mysql,group by是由区别的。oracle的gruop by 后跟的必须是select查询出的字段 而且group by语句中select指定的字段必须是“分组依据字段”,其他字段若想出现在select中则必须包含在聚合函数中 聚合函数比如:sum(列名) 求和 max(列名) 最大值 min(列名) 最小值 avg(列名) 平均...

相似回答