Oracle中提供了對表進行分區的機制,通過表分區,可以將表空間中數據按照某種方式分別存放到特定的分區中。表分區的作用:平衡IO操作,分區均勻,提高效率。
Oracle中表分區方法有:范圍分區法、散列分區法、復合分區法、列表分區法。
范圍分區:語法 Partition by range(); 適合數值型或日期型
示例:
1 create table Student
2(
3 Studentid integer not null,
4 Studentname varchar2(20),
5 Score integer
6)
7 Partition by0)"> range(Score)
8(
9 Partition p1 values less than(60),
10 Partition p2 values less than(75),
11 Partition p3 values less than(85),
12 Partition p4 values less than(maxvalue)
13 );
散列分區法:根據Oracle內部散列算法存儲,語法 Partition by hash();
實例:
1 create table department
2 (
3 Deptno int,
4 0)"> Deptname varchar2(24)
5 )
6 Partition by hash(deptno)
7 (
8 Partition p1,
9 Partition p2
10 );
復合分區法:由上面兩種方法復合而成
示例:
1 create table salgrade
2 (
3 grade number,
4 losal number,
5 hisal number
6 )
70)">Partition by range(grade)
8 Subpartition by hash(losal,hisal)
9 (
10 Partition p1 values less than(10)
11 (subpartition sp1,subpartition sp2),
12 Partition p2 values less than(20)
13 (subpartition sp3,subpartition sp4)
14 )
列表分區法:適合字符型 語法Partition by list()
實例:
1 create table customer
2 (
3 0)"> custNo int,
4 custname varchar(20),
5 custState varchar(20)
6 )
7 Partition by list(custState)
8 (
9 Partition saia values(''中國'',''韓國'',''日本''),
10 Partition Europe values(''英國'',
0,0)">''俄國'',''法國''),