日期:2014-05-16  浏览次数:21692 次

oracle 千万级大数据量的处理,如何提高查询效率?
场景描述:
  oracle数据库中有2张表,一张是tm_bus_realtime_log当前表 只有一当前一天的数据。数据量有几百万的数据。还有一张表,tm_bus_realtime_his历史表 进行了分区。每10天一分区。每个月有3个分区。整个历史表有几亿的数据量。每个分区有千万条数据。
问题描述:
  在从历史表的分区中,查询数据时,很慢,由于数据量非常大,如果想查询几天的数据更慢?应该如何提高查询的速度?

  请各位大牛指点,不胜感激!
Oracle 大数据 历史

------解决方案--------------------
改成一天一个分区
------解决方案--------------------
tm_bus_realtime_his ,如果是给报表用的,最好一天一个分区。

另外,允许的话,最好 对历史数据 进行清理,比如只保存2年的数据。
------解决方案--------------------
依据计划看看索引建的合适不?
------解决方案--------------------
引用:
tm_bus_realtime_his ,如果是给报表用的,最好一天一个分区。

另外,允许的话,最好 对历史数据 进行清理,比如只保存2年的数据。


另外,如果你的查询条件中,除了时间,如果还有其他的字段,那就要相应的建上本地索引
------解决方案--------------------
关键看你的where条件是什么样子。
------解决方案--------------------
如果历史表数据不更改的话,可以考虑在时间字段建立一个trunc(XX)位图函数索引,查询的时候再指定分区。
------解决方案--------------------
表分区了、那索引分区了没?