oracle分区表、分区索引的管理!

对于分区的表的操作很多,其中某些操作仅针对某些分区有效,为了避免在演示过程中浪费过多口水标注哪些操作适用于哪些分区,咱们先在这儿列个表,哪个操作适用于哪种分区格式具体可以先参考下面这个表格:

分区表

Range

List

Hash

Range-Hash

Range-List

是否带来IO操作

增加分区

(add partition)

支持

支持

支持

支持

支持

除hash类型外,均不变带来大量IO

收缩分区

(coalesce partitions)

/

/

支持

分区:/

子分区:支持

/

删除分区

(drop partition)

支持

支持

/

分区:支持

子分区:/

支持

交换分区

(exchange partition)

支持

支持

支持

支持

支持

合并分区

(merge partition)

支持

支持

/

分区:支持

子分区:/

支持

修改默认属性

(modify default attributes)

支持

支持

支持

支持

支持

修改分区当前属性

(modify partition)

支持

支持

支持

支持

支持

List分区增加值

(modify partition add values)

/

支持

/

/

分区:/

子分区:支持

List分区删除值

(modify partition drop values)

/

支持

/

/

分区:/

子分区:支持

单纯删除操作无,但可能为了实现成功删除,之前的准备操作会带来一定量的IO

修改子分区模板

(set subpartition template)

/

/

/

支持

支持

移动分区

(move partition)

支持

支持

支持

分区:支持

子分区:/

分区:支持

子分区:/

重命名分区

(rename partition)

支持

支持

支持

支持

支持

分隔分区

(split partition)

支持

支持

/

分区:支持

子分区:/

支持

截断分区

(truncate partition)

支持

支持

支持

支持

支持

注:上述IO列的评估建立在假设分区中均存在一定量数据,并忽略修改数据字典可能触发的IO,忽略造成的索引的重编译带来的IO。

 

分区索引的操作也有一张表黑黑,如下:

分区索引

索引类型

Range

List

Hash

组合分区

是否带来IO操作

增加分区

(add partition)

全局

/

/

支持

/

本地

/

/

/

/

删除分区

(drop partition)

全局

支持

/

/

/

本地

/

/

/

/

修改默认属性

(modify default attributes)

全局

支持

/

/

/

本地

支持

支持

支持

支持

修改分区当前属性

(modify partition)

全局

支持

/

/

/

本地

支持

支持

支持

支持

重编译分区

(rebuild partition)

全局

支持

/

/

/

本地

支持

支持

支持

支持

重命名分区

(rename partition)

全局

支持

/

/

/

本地

支持

支持

支持

支持

分隔分区

(split partition)

全局

支持

/

/

/

本地

/

/

/

/

另外local索引前头我们多次提到了,其维护会在oracle操作表分区的时候自动进行,需要注意的是global索引,当global索引所在表执行alter table涉及下列操作时,会导至该索引失效:

Ø ADD PARTITION | SUBPARTITION

Ø COALESCE PARTITION | SUBPARTITION

Ø DROP PARTITION | SUBPARTITION

Ø EXCHANGE PARTITION | SUBPARTITION

Ø MERGE PARTITION | SUBPARTITION

Ø MOVE PARTITION | SUBPARTITION

Ø SPLIT PARTITION | SUBPARTITION

Ø TRUNCATE PARTITION | SUBPARTITION

因此,建议用户在执行上述操作sql语句后附加update indexes子句,oracle即会自动维护全局索引,当然,需要注意这中间有一个平衡,你要平衡操作ddl的时间和重建索引哪个时间更少,以决定是否需要附加update indexes子句。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值