在列取值难以确定的情况下采用的分区方法
1.hash分区可以由hash键来分布
2.dba无法获知具体的数据值
3.数据的分布由oracle处理
4每个分区有自己的表空间
--建表同上一节
CREATE TABLE ware_retail_part3(
?? ?id INTEGER primary key,
?? ?retail_date date,
?? ?ware_name VARCHAR2(50)
)
--散列分区,自动分配,无需设置条件
partition by hash(id)
(?? ?
partition par_01 ?tablespace TBSP_1,
partition par_02 ?tablespace TBSP_2
);
--插入数据,查看结果
INSERT into ware_retail_part3 values(99,to_date('2011-11-11','yyyy-mm-dd'),'电脑');
select * from ware_retail_part3 partition(par_01);
select * from ware_retail_part3 partition(par_02);--数据在分区par_02内
案例2.不指定分区名字,由系统默认设置
--散列分区2
CREATE table person
(
?? ?id NUMBER primary key,
?? ?name VARCHAR2(20),
?? ?sex VARCHAR2(2)
)
partition by hash(id)
partitions 2 ?--此处注意书写是复数形式
store in(tbsp_1,tbsp_2);
--想在表空间里面查看默认的分区名字,但是没有找到,有了解的吗?
案例3散列分区
--散列分区3
CREATE TABLE goods1(
?? ?id NUMBER,
?? ?goodname VARCHAR2(20)
)
storage(INITIAL 2048k)
partition by hash(id)
(
?? ?partition par1 tablespace tbsp_1,
?? ?partition par2 tablespace tbsp_2
);
--此案例指定表分区初始化空间,大小为2048K