日期:2014-05-16  浏览次数:20574 次

oracle 表分区的相关操作

分区的优点:

1、 增强可用性:如果表的一个分区由于系统故障而不能使用,表的其余好的分区仍可以使用;

2、 减少关闭时间:如果系统故障只影响表的一部份分区,那么只有这部份分区需要修复,矿能比整个大表修复花的时间更少;

3、 维护轻松:如果需要得建表,独产管理每个公区比管理单个大表要轻松得多;

4、 均衡I/O:可以把表的不同分区分配到不同的磁盘来平衡I/O改善性能;

5、 改善性能:对大表的查询、增加、修改等操作可以分解到表的不同分区来并行执行,可使运行速度更快,在数据仓库的TP查询特别有用。

6、 分区对用户透明,最终用户感觉不到分区的存在。


create tablespace dw1

datafile 'D:\oracle\oradata\ora9\dw11.ora' size 50M

?

create tablespace dw2

datafile 'D:\oracle\oradata\ora9\dw21.ora' size 50M

?

一、按范围分区:固名思义就是按一定range来分区,看下面的例子:

SQL> set linesize 1000

SQL> create table niegc_part

2 (

3 part_id integer primary key,

4 part_date date,

5 part_dec varchar2(100)

6 )

7 partition by range(part_date)

8 (

9 partition part_01 values less than(to_date('2010-01-01','yyyy-mm-dd')) tablespace dw1,

10 partition part_02 values less than(to_date('2011-01-01','yyyy-mm-dd')) tablespace dw2,

11 partition part_03 values less than(maxvalue) tablespace dw1

12 );

?

表已创建。

?

SQL>

SQL> insert into niegc_part values(1,to_date('2009-12-30','yyyy-mm-dd'),'less 20

10-01-01');

?

已创建 1 行。

?

SQL> commit;

?

提交完成。

?

SQL> insert into niegc_part values(2,to_date('2010-01-01','yyyy-mm-dd'),'equal 2

011-01-01');

?

已创建 1 行。

?

SQL> commit;

?

提交完成。

?

SQL> insert into niegc_part values(3,sysdate,'sysdate');

?

已创建 1 行。

?

SQL> commit;

?

提交完成。

?

SQL>

SQL>

SQL> select * from niegc_part partition(part_01);

?

?? PART_ID PART_DATE PART_DEC

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

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

???????? 1 30-07月-12 less 2010-01-01


SQL>

?