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

oracle分区表总结

?

ORACLE里如果遇到特别大的表,可以使用分区的表来改变其应用程序的性能。


同事的分区表总结,转载一下。

1.1 分区表PARTITION table

ORACLE里如果遇到特别大的表,可以使用分区的表来改变其应用程序的性能。

1.1.1 分区表的建立:

某公司的每年产生巨大的销售记录,DBA向公司建议每季度的数据放在一个分区内,以下示范的是该公司1999年的数据(假设每月产生30M的数据),操作如下:

范围分区表:

CREATE TABLE sales

(invoice_no NUMBER,

...

sale_date DATE NOT NULL )

PARTITION BY RANGE (sale_date)

(PARTITION sales1999_q1

VALUES LESS THAN (TO_DATE(1999-04-01,YYYY-MM-DD)

TABLESPACE ts_sale1999q1,

PARTITION sales1999_q2

VALUES LESS THAN (TO_DATE(1999-07-01,YYYY-MM-DD)

TABLESPACE ts_sale1999q2,

PARTITION sales1999_q3

VALUES LESS THAN (TO_DATE(1999-10-01,YYYY-MM-DD)

TABLESPACE ts_sale1999q3,

PARTITION sales1999_q4

VALUES LESS THAN (TO_DATE(2000-01-01,YYYY-MM-DD)

TABLESPACE ts_sale1999q4 );

--values less than (maxvalue)

列表分区表:

create table emp (

empno number(4),

ename varchar2(30),

location varchar2(30))

partition by list (location)

(partition p1 values ('北京'),

partition p2 values ('上海','天津','重庆'),

partition p3 values ('广东','福建')

partition p0 values (default)

);

哈希分区:

create table emp (

empno number(4),

ename varchar2(30),

sal number)

partition by hash (empno)

partitions 8