Oracle海量数据统计难题

表中有70,000,000行数据,需要统计然后绘图表示结果。
统计的函数有count()和sum()等
条件:举例说明有字段start_time和duration,
select sum(duration) from table1 where start_time > '20040101000000'

满足条件的数据可能有10,000,000条,请问各位高手有没有优化的方法?万分感谢。

Java负责建立与数据库的连接,并向数据库驱动底层发送 SQL语句,而剩下的查询、聚合、统计、增删等操作就由 数据库自己 操作。

所以,个人认为,做好数据库端的优化是首要的工作。

而在编程一端,如何进行优化,个人认为优化扩展余地不是很大。
毕竟,客户需要的是足够“新鲜”的数据,而不是Cache中的过期数据。

::Personal View

partition table 和materilized view 是oracle data warehouse的两大利器,

如此大的数据
确实jdbc的优化处理也解决不了

如果此数据是经常的更新和不是频繁的读取的话

只需要数据服务器端优化好就行了!

如果不是经常更新和频繁读取的话。

程序必要的缓存是需要的!

>满足条件的数据可能有10,000,000条
这些数据在实际需求中一般是不会被全部读取的,这里还谈不上优化,主要是系统如何设计的问题。

如果必须硬编码,建议采用服务器端存储吧,在服务器上作优化。应用里面就要考虑性能的问题了,比如控制并发提交给数据库的请求,否则,这种动态计算是非常消耗数据库资源的,就算不死,也会造成相应缓慢。
为什么不利用一些多维分析软件呢?