大数据量的数据库设计

 1.按照月来分,每个月让系统自动建一张表,然后把这个月的数据放在这个表里面

2.就是用一个备份的数据服务器,把每个月的数据都导出到那个备份服务器上去,在备份服务器上面数据的存储不按月来分,按照年来分,每年建一张新表,做报表的时候,就到备份服务器上面操作

3.就是对这几张表用对象数据库,来存储一个月的数据,这数据是在内存的,操作起来,比操作关系数据库快,前段时间的数据还是放在关系数据库里面,这样就可以不用数据备份服务器了

4 .定时清理数据,可以考虑用触发器或者带存储过程的作业来实现;

5.是考虑数据的转换与提取,定期用程序或用事务复制导入原始/汇总数据,把数据复制到一台专门做统计的服务器上,专门做查询所用;查询的时候做相应的优化,例如索引,视图等这样查询的时候压力就会小很多;同时考虑负载平衡,在空隙时利用其cpu和内存

6 .各业务系统和外部数据源传送的数据为维系挽留系统输入,这些数据分别经过数据格式检查;源数据清洗抽取转换、装载数据到收集层;对收集层中数 据抽取、转换、装载到数据仓库;数据仓库中数据进行抽取、转换并结合模型算法库中的算法生成维系结果集以供输出;同时通过数据仓库接口,可将数据提供给应 用系统的本地化查询使用。

http://www.cnblogs.com/luluping/archive/2009/12/12/1622566.html

 

分区,单独tbs,用如下方法建立,性能会好很多.
CREATE TABLESPACE tbs_larger_160m LOGGING DATAFILE 'D:/oracle/oradata/ninedb/tbs_larger.dbf' SIZE 327688K
REUSE AUTOEXTEND ON NEXT 160M MAXSIZE 4096008K EXTENT MANAGEMENT LOCAL UNIFORM SIZE 160M
SEGMENT SPACE MANAGEMENT  AUTO ;
db_file_multiblock_read_count=32

http://www.itpub.net/thread-412393-1-1.html

 

 

完全可以按月、b建复合分区,几百个分区对oracle只是小case,如果你的机器内存足够,可以按月、b、a建分区。
(分区很多的话,数据字典很大,必须在shared_pool中cache才行,所以内存需要多些)

 

给你一个例子参考:
-----病人每日费用清单(10000/天)
drop       table   DAYBILL;
create   table   DAYBILL(
DAYBLDATE Date Not   Null ,
PATID Number(9) Not   Null ,
INVID Number(4) Not   Null ,
AMT Number(12,4)
)
partition   by   range(DAYBLDATE)
subpartition   by   hash(PATID)   subpartitions   10
(
partition   daybill_200305   values   less   than   (to_date( '20030601 ', 'yyyymmdd ')),
partition   daybill_200306   values   less   than   (to_date( '20030701 ', 'yyyymmdd ')),
partition   daybill_200307   values   less   than   (to_date( '20030801 ', 'yyyymmdd ')),
partition   daybill_200308   values   less   than   (to_date( '20030901 ', 'yyyymmdd ')),
partition   daybill_200304   values   less   than   (to_date( '20031001 ', 'yyyymmdd ')),
)
pctfree   5   pctused   60
initrans   10   maxtrans   255
storage(   initial   10M   next   10M   FreeLists   2)
tablespace   his_part;
create   index   in_daybill_daybldate   on   daybill(DAYBLDATE,PATID,INVID)   local   pctfree   0   tablespace   his_indx;
alter   table   DAYBILL   add   constraint   PK_DAYBILL   primary   key(DAYBLDATE,PATID,INVID);
create     index   in_DAYBILL_patid   on   DAYBILL(PATID)   global

 

http://topic.csdn.net/t/20040319/10/2860626.html

 

大数据量的数据库设计准则:
1、分区 (list、range、hash)。
2、根据where条件来决定分区策略。

http://www.javaeye.com/topic/174263

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值