WEB开发网
开发学院数据库Oracle Oracle表分区总结 阅读

Oracle表分区总结

 2008-12-08 13:01:56 来源:WEB开发网   
核心提示:http://www.blogjava.net/improviser/archive/2007/10/01/150073.htmlOracle中提供了对表进行分区的机制,通过表分区,Oracle表分区总结,可以将表空间中数据按照某种方式分别存放到特定的分区中, 表分区的作用:平衡 IO 操作,分区均匀,提高效率

http://www.blogjava.net/improviser/archive/2007/10/01/150073.html

Oracle中提供了对表进行分区的机制,通过表分区,可以将表空间中数据按照某种方式分别存放到特定的分区中。 表分区的作用:平衡 IO 操作,分区均匀,提高效率。

Oracle中表分区方法有:范围分区法、散列分区法、复合分区法、列表分区法。

范围分区: 语法 Partition by range (); 适合数值型或日期型

示例:

1createtable Student
2 (
3  Studentidintegernotnull ,
4  Studentnamevarchar2(20 ),
5  Scoreinteger
6 )
7Partitionby range(Score)
8 (
9  Partitionp1valueslessthan(60 ),
10  Partitionp2valueslessthan(75 ),
11  Partitionp3valueslessthan(85 ),
12  Partitionp4values lessthan(maxvalue)
13 );

散列分区法: 根据Oracle内部散列算法存储,语法 Partition by hash();

实例:

1createtable department
2 (
3  Deptnoint ,
4  Deptnamevarchar2(24 )
5 )
6Partitionby hash(deptno)
7 (
8   Partitionp1,
9   Partitionp2
10);

复合分区法:由上面两种方法复合而成

示例:

1createtable salgrade
2 (
3  gradenumber ,
4  losalnumber ,
5  hisalnumber
6 )
7Partitionby range(grade)
8Subpartitionby hash(losal,hisal)
9 (
10  Partitionp1valueslessthan(10 ),
11    (subpartitionsp1,subpartitionsp2),
12  Partitionp2valueslessthan(20 ),
13    (subpartitionsp3,subpartitionsp4)
14)

列表分区法: 适合字符型 语法 Partition by list()

实例:

1createtable customer
2 (
3  custNoint ,
4  custnamevarchar(20 ),
5  custStatevarchar(20 )
6 )
7Partitionby list(custState)
8 (
9  Partitionsaiavalues('中国','韩国','日本' ),
10  PartitionEuropevalues('英国','俄国','法国' ),
11  Partitionameriavalues('美国','加拿大','墨西哥' ),
12 );
13   

表分区维护:

添加分区:alter table student add partition p5 values less than(120);

删除分区:alter table student drop partition p4;

截断分区:alter table student truncate partition p5;

合并分区:alter table student merge partitions p3,p4 into partition p6;

Tags:Oracle 分区 总结

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接