您的位置:首页 > 数据库 > Oracle

Oracle分区技术

2010-03-03 20:53 423 查看
ORACLE的分区(Partitioning Option)是一种处理超大型表的技术。分区是一种“分而治之”的技术,通过将大表和索引分成可以管理的小块,从而避免了对每个表作为一个大的、单独的对象进行管理,为大量数据提供了可伸缩的性能。分区通过将操作分配给更小的存储单元,减少了需要进行管理操作的时间,并通过增强的并行处理提高了性能,通过屏蔽故障数据的分区,还增加了可用性。

select * from user_tables a where a.partitioned= 'YES '

Sql代码

CREATE TABLE range

(id NUMBER(5),

name VARCHAR2(30),

amount NUMBER(10),

sdate DATE)

COMPRESS

PARTITION BY RANGE(sdate)

(PARTITION sales_jan2000 VALUES LESS THAN(TO_DATE('16/09/2009','DD/MM/YYYY')),

PARTITION sales_feb2000 VALUES LESS THAN(TO_DATE('17/09/2009','DD/MM/YYYY')),

PARTITION sales_mar2000 VALUES LESS THAN(TO_DATE('18/09/2009','DD/MM/YYYY')),

PARTITION sales_apr2000 VALUES LESS THAN(TO_DATE('19/09/2009','DD/MM/YYYY')));

CREATE TABLE range
(id  NUMBER(5),
name VARCHAR2(30),
amount  NUMBER(10),
sdate DATE)
COMPRESS
PARTITION BY RANGE(sdate)
(PARTITION sales_jan2000 VALUES LESS THAN(TO_DATE('16/09/2009','DD/MM/YYYY')),
PARTITION sales_feb2000 VALUES LESS THAN(TO_DATE('17/09/2009','DD/MM/YYYY')),
PARTITION sales_mar2000 VALUES LESS THAN(TO_DATE('18/09/2009','DD/MM/YYYY')),
PARTITION sales_apr2000 VALUES LESS THAN(TO_DATE('19/09/2009','DD/MM/YYYY')));


动态增加分区

Sql代码

create or replace procedure addpart(tableName varchar2,

partName varchar2,

adate varchar2)

is

begin

execute immediate 'alter table ' || tableName || ' add partition ' || partName || '

values less than (to_date(''' || adate || ''',''YYYY-MM-DD'')' || ')';

end addpart;

create or replace procedure addpart(tableName varchar2,
partName  varchar2,
adate     varchar2)
is
begin
execute immediate 'alter   table   ' || tableName || '   add   partition   ' || partName || '
values   less   than   (to_date(''' || adate || ''',''YYYY-MM-DD'')' || ')';
end addpart;


增加一个分区:alter table add partition/alter table split partition
释放一个表分区 alter table ** drop partition **
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: