Advertisement
Advertisement

新足迹

 找回密码
 注册
新足迹 门户 IT专业论坛 查看内容

大表有11亿条数据,想分区, 求建议!

2013-7-8 19:55| 发布者: oea | 查看: 1636| 原文链接

先声明一下, 本人非oracle专业人员,不是开发, 更不是dba, 因为在其他领域比较专业, 临时被抓夫处理这个问题.

数据库是oracle11g 11.0.2.

系统是一个会计的分账应用. 一张大表在线一年, 现有1112813014条数据. (如果我没数错, 应该是11亿多.) 平均每个工作日350万条记录.(一共295个工作日.)

表结构很简单, 单字段主键. 自增形, 值是从sequence来的. 表上没有任何其他索引.

查询基本上是某一时间段(from_date, to_date)的数据(基本是5天范围内), 外加一下其他的条件.

运行效率差可以想像.

好在查询基本是夜间产生报表. sql 加上 hint parallel 跑2,3个小时也没太大关系.  

中间出过一二次大问题, 6,7个小时都运行不完. 最后通过手动减少数据量解决问题.

表的设计和开发者, 已经跳槽到其他公司,很欣慰,不在这祸害了.

随着数据量继续增加, 现在基本的想法就是通过分区(按时间 range) 提高效率.

按天分区,不太可行. 因为周末和节假日根本没有记录进来.

月分区觉得数据太大了.  下面是简单的统计数字


COUNT(*) TRUNC(BAL

---------- ---------

  88375062 01/OCT/12

163326657 01/MAY/13

145804267 01/APR/13

  90561567 01/JUN/13

106122906 01/JAN/13

  98885441 01/DEC/12

110900877 01/FEB/13

  89378244 01/SEP/12

135309877 01/MAR/13

  81850952 01/NOV/12

12 rows selected.


个人感觉按星期分区比较理想.

想在这里请教各位专家.

1) 我的想法是否实际.

2) 如果可行? 有什么注意事项. 重建表, 导入数据,在线修改.

3) 分区后, 从硬件, 维护, 备份的角度, 需要做什么?

4) 如果不可行, 有无其他建议.

如果答案是问dba的话. 可能要失望了. 我们那理dba要是管用, 也就不用哥们我来这里玩票了.

先谢谢大家.
Advertisement
Advertisement


Advertisement
Advertisement
返回顶部