快捷搜索:

Oracle9i中分区Partition的使用简介(1) - Oracle

Oracle9i经由过程引入列表分区(List Partition),使适合前共有4种分区数据的措施,详细列出如下:

第一种 范围分区

1 对表进行单列的范围分区:

这使最为常用也是最简单的措施,具编制子如下:

create table emp

(empno number(4),

ename varchar2(30),

sal number)

partition by range(empno)

(partition e1 values less than (1000) tablespace emp1,

partition e2 values less than (2000) tablespace emp2,

partition e3 values less than (maxvalue) tablespace emp3);

insert into emp values (100,'Tom',1000);

insert into emp values (500,'Peter',2000);

insert into emp values (1000,'Scott',3000);

insert into emp values (1999,'Bill',4000);

insert into emp values (5000,'Gates',6000);

commit;

从emp表中选择整个的记载如下:

SQL> select * from emp;

EMPNO ENAME SAL

---------- ------------------------------ ----------

100 Tom 1000

500 Peter 2000

1000 Scott 3000

1999 Bill 4000

5000 Gates 6000

还可以按照分区进行选择:

SQL> select * from emp partition (e1);

EMPNO ENAME SAL

---------- ------------------------------ ----------

100 Tom 1000

500 Peter 2000

SQL> select * from emp partition (e2)

EMPNO ENAME SAL

---------- ------------------------------ ----------

1000 Scott 3000

1999 Bill 4000

SQL> select * from emp partition (e3)

EMPNO ENAME SAL

---------- ------------------------------ ----------

5000 Gates 6000

应用了分区,还可以零丁针对指定的分区进行truncate操作:

alter table emp truncate partition e2;

2 对表进行多列的范围分区:

多列的范围分区主如果基于表中多个列的值的范围对数据进行分区,例如:

drop table emp;

create table emp

(empno number(4),

ename varchar2(30),

sal number,

day integer not null,

month integer not null)

partition by range(month,day)

(partition e1 values less than (5,1) tablespace emp1,

partition e2 values less than (10,2) tablespace emp2,

partition e3 values less than (maxvalue,maxvalue) tablespace emp3);

SQL> insert into emp values (100,'Tom',1000,10,6);

SQL> insert into emp values (200,'Peter',2000,3,1);

SQL> insert into emp values (300,'Jane',3000,23,11);

第二种 Hash分区:

hash分区最主要的机制是根据hash算法来谋略详细某笔记载应该插入到哪个分区中,hash算法中最紧张的是hash函数,Oracle中假如你要应用hash分区,只需指定分区的数量即可。建议分区的数量采纳2的n次方,这样可以使得各个分区间数据散播加倍平均。

具编制子如下:

drop table emp;

create table emp (

empno number(4),

ename varchar2(30),

sal number)

partition by hash (empno)

partitions 8

store in (emp1,emp2,emp3,emp4,emp5,emp6,emp7,emp8);

您可能还会对下面的文章感兴趣: