本文來自:
http://www.tkk7.com/improviser/archive/2007/10/01/150073.html
Oracle中提供了對表進(jìn)行分區(qū)的機(jī)制,通過表分區(qū),可以將表空間中數(shù)據(jù)按照某種方式分別存放到特定的分區(qū)中。
表分區(qū)的作用:平衡IO操作,分區(qū)均勻,提高效率。
Oracle中表分區(qū)方法有:范圍分區(qū)法、散列分區(qū)法、復(fù)合分區(qū)法、列表分區(qū)法。
范圍分區(qū):語法 Partition by range(); 適合數(shù)值型或日期型
示例:
1 create table Student
2(
3 Studentid integer not null,
4 Studentname varchar2(20),
5 Score integer
6)
7 Partition by 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 );
散列分區(qū)法:根據(jù)Oracle內(nèi)部散列算法存儲,語法 Partition by hash();
實(shí)例:
1 create table department
2 (
3 Deptno int,
4 Deptname varchar2(24)
5 )
6 Partition by hash(deptno)
7 (
8 Partition p1,
9 Partition p2
10 );
復(fù)合分區(qū)法:由上面兩種方法復(fù)合而成
示例:
1 create table salgrade
2 (
3 grade number,
4 losal number,
5 hisal number
6 )
7 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 )
列表分區(qū)法:適合字符型 語法Partition by list()
實(shí)例:
1 create table customer
2 (
3 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('英國','俄國','法國'),
11 Partition ameria values('美國','加拿大','墨西哥'),
12 );
13
表分區(qū)維護(hù):
添加分區(qū):alter table student add partition p5 values less than(120);
刪除分區(qū):alter table student drop partition p4;
截?cái)喾謪^(qū):alter table student truncate partition p5;
合并分區(qū):alter table student merge partitions p3,p4 into partition p6;
posted on 2008-06-18 17:28
henry1451 閱讀(374)
評論(0) 編輯 收藏 所屬分類:
Oracle技術(shù)