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

添加分区

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

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

使用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;

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值