oracle分区表及对日期存储格式的选择

oracle分区表 

通过对分区列的判断,把不同记录放到不同分区中。每个分区都是一个独立的段

①range分区  以列值得范围作为分区的划分条件

create table test(id number,time date)partition by

range (time)(

partition p1 values less than (to_date('2010-10-01','yyyy-mm-dd')),

partition p2 values less than (maxvalue)

)

②hash分区

对于那些无法有效划分范围的列,可以用哈希分区,oracle根据该列hash值自动平均分配

create table test (id varchar2(256),time date) partition by 

hash(id)(

partition p1 tablespace ts01,

partition p2 tablespace ts02

)

③list分区

list分区必须明确指定列的值,只能指定一个列但是每个分区值可以是多个。在List分区时值不在各个分区范围内插入就报错,一般要创建一个default分区存放其他值

create table test(id varchar2(256),areacode varchar2(4))

partition by list(areacode)

(partition list_1 values('025'),

partition list_2 values('372'),

partition list_3 values(default)

)

oracle 11g新特性 interval自动增加分区

oracle中对日期存储的数据类型选择

在项目中见到有把时间存为date、timestamp、varchar2都有

date保存年月日时分秒,timestamp精确到小数秒但是最大值只到2038年

date 便于比较时间之间计算,但是精度不够有时不容易比较事件发生先后顺序

timstamp 精度够,最大值不够传输转换比较麻烦

varchar2 便于传输展示,但是涉及时间比较计算比较麻烦

猜你喜欢

转载自xiaoxiaoher.iteye.com/blog/2345191