今天是2016年4月13号,清晨据说是50年来深圳最大的雨把我给吵醒了,上午腾讯新闻弹出新闻说这是谣言~!我信了~j_0004.gif! 今天把tiptop的一个功能实现了~心情还不错。不瞎扯了,今天开始学习oracle表分区和索引分区!坚持就是胜利~

   oracle是支持物理分区的数据库管理系统,据说是最早支持的!优点如下

1:减少维护工作量,独立管理每个分区比管理大的单分区简单

2:数据可用性增强,一个分区坏了不影响所有数据

3:提高查询速度

4:均衡I/O


创建表分区

create table ware_retail_part

(

 id integer primary key,

 retail_date date,

ware_name varchar2(50)

)

partition by range(retail_date)

 partition par_01 values less than(to_date('2011-04-01','yyyy-mm-dd')),

 partition par_02 values less than(to_date('2011-07-01','yyyy-mm-dd')),

 partition par_03 values less than(to_date('2011-10-01','yyyy-mm-dd')),

 partition par_04 values less than(to_date('2012-01-01','yyyy-mm-dd'))

 );

也可以用多个作为range对象


散列分区(HASH分区)

很难区分范围的用这个,对范围查询和不等式查询没优化作用

创建

create table ware_retail_part3

(

 id integer primary key,

 retail_date date,

ware_name varchar2(50)

)

storage(initial 2048k)  --指定表分区的初始化空间大小

partition by hash(id)  分区

(

partition par_01 tablespace tmp_01,

partition par_02 tablespace tmp_02

);


列表分区

关键字LIST

表的某个列可以枚举就用列表分区

create table ware_retail_part3

(

 id integer primary key,

 name varchar2(50),

 province varchar2(20)

)


partition by list(province)  分区

(

partition shandong values('山东省'),

partition shenzhen values('深圳省'),

partition jiujiang  values('九江省')

);