oracle 添加复合分区,Oracle 11g维护分区(一)——Adding Partitions

本文介绍了如何在Oracle 11g中手动添加分区到不同类型的分区表,包括范围、哈希、列表和间隔分区。添加分区涉及到ALTER TABLE语句的使用,以及对索引的影响。此外,还讲解了向复合分区表添加子分区的方法,以及在添加过程中对索引的处理策略。
摘要由CSDN通过智能技术生成

添加分区

本节将介绍如何手动添加新的分区到分区表,并解释了为什么分区不能被指定添加到大部分分区索引。

向范围分区表添加一个分区

使用ALTER TABLE ... ADD PARTITION语句来添加一个新的分区到“高”端(表中最后一个分区的’HighValue’)。要在开始或在表的中间添加一个分区,使用SPLIT PARTITION子句。

例如,考虑这么一张表,sales,除了包含当前月份的数据,还包含之前12个月份的数据。 1999年1月1日,你增加一个分区月份,存储在表空间TSX。

ALTER TABLE sales

ADD PARTITION jan99 VALUES LESS THAN ( '01-FEB-1999' )

TABLESPACE tsx;

另外,和范围分区表相关的本地索引和全局索引仍然可用。

向哈希分区表添加一个分区

当你向一个哈希分区表添加分区时,数据库会对一个现有分区(由数据库选择)的所有数据行按照哈希函数进行重新排列,并将数据填充到新增的分区中。因此,如果表非空的话,添加一个哈希分区可能比较费时。

下面的语句显示了向scubagear表添加一个哈希分区的两种方式。选择第一条语句来添加哈希分区,分区名称由系统自动生成,并且分区存放在默认表空间。第二条语句同样也是增加一个分区,但是,明确指定了分区名称p_named和表空间名称gear5。

ALTER TABLE scubagear ADD PARTITION;

ALTER TABLE scubagear

ADD PARTITION p_named TABLESPACE gear5;

索引可能被标识为UNUSABLE,如下表所述:

表类型

索引操作

普通表(堆表)

除非你在ALTER TABLE语句中指定UPDATE INDEXES字句:

对于新增分区和重新分配的现有分区的本地索引,被标识为UNUSABLE,必须重建。

所有全局索引,或者分区全局索引的所有分区,被标识为UNUSABLE,必须重建。

索引组织表

对于本地索引,和普通表的处理方式一样。

所有全局索引保持可用;

向列表分区表添加一个分区

下面的语句说明了如何向列表分区表添加一个新的分区,在示例中,指定了新增分区的存储属性和NOLOGGING属性。

ALTER TABLE q1_sales_by_region

ADD PARTITION q1_nonmainland VALUES ('HI', 'PR')

STORAGE (INITIAL 20K NEXT 20K) TABLESPACE tbs_3

NOLOGGING;

描述新增分区的集合内的所有值不能存在于表的其他分区。

如果一个列表分区表包含默认分区,那

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值