架构深渊

慢慢走进程序的深渊……关注领域驱动设计、测试驱动开发、设计模式、企业应用架构模式……积累技术细节,以设计架构为宗。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

[求助]寻求创建分区表的方案

Posted on 2009-04-22 01:50  chen eric  阅读(338)  评论(2编辑  收藏  举报

 

[求助]寻求创建分区表的方案,具体需求请进


具体表结构如下:


[Copy to clipboard] [ - ]
CODE:
create table DRAW
(
  ID    
NUMBER(8not null,
  VALTYPE  
NUMBER(2not null,
  TM       
NUMBER(4not null,
  DATATIME DATE 
not null,
  RAWDATA  
NUMBER(15,5),
  RAWTYPE  
NUMBER(2),
  REPDATA  
NUMBER(15,5),
  REPTYPE  
NUMBER(2),
  TMENG    
NUMBER(15,5),
  ENGTYPE  
NUMBER(2),
  VALID    
NUMBER(1),
  BAK      
VARCHAR2(64)
)

ID、VALTYPE  、DATATIME 为主键列。

每个ID、和VALTYPE在一天之内有1440条数据,就是每1分钟有1条数据;
ID大概在1000个左右,根据业务量的增大可能还会增加;
VALTYPE目前有4个值,从1到4。
所以说一天的数据都要在200万以上。

随着运行时间的变长,可能1年下来数据量就要到10,20亿左右。

客户端经常执行的SQL语句如下:


[Copy to clipboard] [ - ]
CODE:
select id,valtype,to_char(datatime,'yyyy-mm-dd'),sum(tmeng) 
from draw 
where id in (10001,10002,10003,10004,10005,10006,10007,10008,10009)  
and  DATATIME >= to_date('20060101','yyyymmdd'and DATATIME <to_date('20060201','yyyymmdd')
group by d,valtype,to_char(datatime,'yyyy-mm-dd')

如果采用普通表的话速度就很慢,要提高性能的话就想采用分区表技术,想以DATATIME来分区,一天一个分区表。

这样在建立分区表时有什么注意事项?表空间怎么建?索引怎么建?建全局索引还是local索引?索引的表空间怎么弄?

谢谢大家。