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 便于传输展示,但是涉及时间比较计算比较麻烦