oracle 千万级大数据量的处理,如何提高查询效率?

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

  请各位大牛指点,不胜感激!
...全文
14369 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
文珺698 2021-07-27
  • 打赏
  • 举报
回复

img

lhdz_bj 2013-05-16
  • 打赏
  • 举报
回复
关键看你的where条件是什么样子。
多壮志 2013-05-16
  • 打赏
  • 举报
回复
需求不明,没有什么好说的。
linwaterbin 2013-05-16
  • 打赏
  • 举报
回复
表分区了、那索引分区了没?
希德 2013-05-16
  • 打赏
  • 举报
回复
如果历史表数据不更改的话,可以考虑在时间字段建立一个trunc(XX)位图函数索引,查询的时候再指定分区。
u010412956 2013-05-15
  • 打赏
  • 举报
回复
引用 2 楼 u010412956 的回复:
tm_bus_realtime_his ,如果是给报表用的,最好一天一个分区。 另外,允许的话,最好 对历史数据 进行清理,比如只保存2年的数据。
另外,如果你的查询条件中,除了时间,如果还有其他的字段,那就要相应的建上本地索引
sych888 2013-05-15
  • 打赏
  • 举报
回复
依据计划看看索引建的合适不?
u010412956 2013-05-15
  • 打赏
  • 举报
回复
tm_bus_realtime_his ,如果是给报表用的,最好一天一个分区。 另外,允许的话,最好 对历史数据 进行清理,比如只保存2年的数据。
huanghui_6659 2013-05-15
  • 打赏
  • 举报
回复
改成一天一个分区

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧