日期:2014-05-16 浏览次数:20574 次
分区的优点:
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>
?