分区技术有如下优点:
1、分区技术使数据库的可管理性变得更加容易,如:用户可以往一个单独的分区中装载数据,而对其他分区没有任何影响;用户可以在单独的分区上创建索引等。
2、分区可以提高表的查询性能,SQL语句的where子句会过滤掉不需要的分区,oracle不会再扫描那些不需要的分区。
3、分区技术减少数据的不可用时间,用户可以单独维护一个分区中的数据,而不影响其他分区中数据的使用。
4、分区技术在数据库级完成,几乎不需要对应用程序做任何修改。
Oracle提供的分区方法
范围分区:根据表中列值的范围将整个表分成不同的部分,如按照时间进行范围分区。
列表分区:使用列表值将表划分成几部分。
哈希分区:使用哈希函数把表分成几部分。
复合分区:同时使用两种分区方法对表进行分区。
分区表的创建
范围分区
create table people(
id number,
age int not null,
address varchar2(100))
partition by range (age)
(partition p1 values less than (10) tablespace users,
partition p2 values less than (20) tablespace hbk_data,
partition p3 values less than (30) tablespace users);
在客户端的显示如下:
哈希分区,可以按照分区数量和指定分区两种
如下共有4个分区。
create table people_hash (id number,age number) partition by hash(age) partitions 4;
系统生成分区名
也可以指定分区,名字和存储表空间信息
create table people_hash2(id number,age number) partition by hash(age) (partition pt1 tablespace users,partition pt2 tablespace hbk_data,partition pt3 tablespace users);
如下:生成了自定义分区名
创建列表分区
create table people_list (name va