Oracle 分区表(二)

2014-11-24 17:18:26 · 作者: · 浏览: 1
umber,deptname varchar2(32))


partition by hash(deptno)


(partition p1 tablespace p1,


partition p2 tablespace p2);



create table sales_hash


(salesman_id number(5),


salesman_name varchar2(30),


sales_amount number(10),


week_no number(2))


partition by hash (salesman_id)


partitions 4


store in (data1,data2,data3,data4)



data1,data2,data3,data4 为表空间名。


散列分区表的每个分区都被存储在单独的段中。



3.List分区:列表分区


List分区可以控制如何将行映射到分区中去。可以在每个分区的键上定义离散的值


不同于Range分区和Hash分区,


Range分区与分区相关联,为分区列假设了一个值的自然范围,故不可能将该值的范围以外的分区组织到一起。


hash分区时不允许对数据的划分进行控制,因为系统使用的是散列函数来划分数据的。


List分区的优点在于按照自然的方式将无序和不相关的数据集合分组。


List分区不支持多列分区,如果将表按列分区,那么分区键就只能有表的一个单独列组成。


Range分区和Hash分区可以对多列进行分区。


List分区时必须指定的以下内容


分区方法:list


分区列


分区描述,每个描述指定一串文字值(值的列表),它们是分区列(它们限定将被包括在分区中的行)的离散值



示例:


create table sales_list


(salesman_id number(5),


salesman_name varchar2(30),


sales_state varchar2(20),


sales_amount number(10),


sales_date date)


partition by list (sales_state)


(


partition sales_west values ('California','Hawaii') tablespace x,


partition sales_east values ('New York','Virginia') tablespace y,


partition sales_central values ('Texas','Illinois') tablespace z,


partition sales_other values(DEFAULT) tablespace o


);



添加分区:


alter table sales3 add partition hk values ('HK') tablespace xx