手机版
你好,游客 登录 注册 搜索
背景:
阅读新闻

Oracle 11g维护分区(七)——Modifying Real Attributes of Partitions

[日期:2015-08-06] 来源:Linux社区  作者:hoegh [字体: ]

修改一个表或者索引现有分区的属性,是可能的。

你不能改变TABLESPACE属性。使用ALTER TABLE ... MOVE PARTITION/SUBPARTITION来将一个分区或者子分区移动到新的表空间。

修改现有范围或列表分区属性

使用ALTER TABLE ... MODIFY PARTITION来修改现有范围分区或列表分区的属性。你可以修改段属性(除了TABLESPACE),或者你可以分配和释放区,标识本地索引分区为UNUSABLE,或者重建标识为UNUSABLE的本地索引。

如果这是一个复合哈希分区表的范围分区,那么请注意以下几点:

如果你分配或释放一个区,指定分区的每一个子分区都会执行该操作;

同样,修改任何其他属性会导致该分区的所有子分区的相关属性被修改。分区级别的默认属性也会被修改。为了避免修改现有子分区的属性,可以使用MODIFY DEFAULT ATTRIBUTES语句的FOR PARTITION子句。

    以下是修改一个分区实际属性的一些例子。

    该例子修改了sales表sales_q1范围分区的MAXEXTENTS存储属性:

ALTER TABLE sales MODIFY PARTITION sales_q1

    STORAGE (MAXEXTENTS 10);

    在下面的例子中,在范围-哈希分区表scubagear的ts1分区里,所有的本地索引子分区被标识为UNUSABLE:

ALTER TABLE scubagear MODIFY PARTITION ts1 UNUSABLE LOCAL INDEXES;
    对于间隔分区表而言,你只能修改范围分区或者已有间隔分区的实际属性。
 

修改现有哈希分区属性

    你也可以使用ALTER TABLE ... MODIFY PARTITION语句来修改哈希分区的属性。但是,由于所有单个哈希分区的物理属性必须一致(除了TABLESPACE),你只限于:

分配一个新的区

释放一个未使用的区

标识一个本地索引分区为UNUSABLE

重建被标识为UNUSABLE的本地索引分区

    下面的例子重建了dept表和P1哈希分区相关的所有UNUSABLE本地索引分区:

ALTER TABLE dept MODIFY PARTITION p1

    REBUILD UNUSABLE LOCAL INDEXES;

修改现有子分区属性

    使用ALTER TABLE的MODIFY SUBPARTITION子句,你可以执行前面列出的相同操作,只是在指定的复合分区表子分区级别。例如:

ALTER TABLE emp MODIFY SUBPARTITION p3_s1

    REBUILD UNUSABLE LOCAL INDEXES;

修改现有索引分区属性

    使用ALTER INDEX的MODIFY PARTITION子句,你可以修改索引分区或其子分区的实际属性。规则和修改表分区属性十分类似,但是对于ALTER INDEX语句的MODIFY PARTITION子句不同的是,没有重建unusable索引分区的子句,但是有合并索引分区或其子分区的子句。在这种情况下,合并意味着合并索引快以释放它们重新利用。

    你还可以使用MODIFY PARTITION来分配或释放本地索引的子分区,或者标识为UNUSABLE。

更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址http://www.linuxidc.com/Linux/2015-08/121189.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款