您当前的位置:首页 > oracle

Oracle 11g维护分区概述

本章节介绍了如何为表和索引进行分区和子分区的维护操作。G4Dlinux系统宝典

本章节包含以下主题:G4Dlinux系统宝典

  • 在分区上可以执行的维护操作
  • 自动更新索引
  • 添加分区
  • 合并分区
  • 删除分区
  • 交换分区
  • 合并分区
  • 修改默认属性
  • 修改分区的当前属性
  • 修改列表分区:增加值
  • 修改列表分区:删除值
  • 修改子分区模板
  • 移动分区
  • 在线重定义分区
  • 重建索引分区
  • 重命名分区
  • 分割分区
  • 截断分区

注意:G4Dlinux系统宝典

以下各节讨论分区表的维护操作,这些维护操作会影响到索引或索引分区的可用性,考虑以下几点:G4Dlinux系统宝典

  • 只有非空的索引和索引分区才可能被标识为UNUSABLE。如果他们是空的,USABLE/UNUSABLE状态保持不变。
  • 只有状态为可用(USABLE)的索引或索引分区可以被后续的DML更新。

在分区上可以执行的维护操作

4-1列出了可以对分区表和复合分区表进行的维护操作,表4-2列出子分区维护操作可以对分区表进行复合。对于每种类型的分区和分区,都列出了维护操作中用到的ALTER TABLE语句的具体子句。G4Dlinux系统宝典

4-1分区表的ALTER TABLE维护操作G4Dlinux系统宝典

维护操作G4Dlinux系统宝典

范围复合G4Dlinux系统宝典

Range-*G4Dlinux系统宝典

间隔复合G4Dlinux系统宝典

Interval-*G4Dlinux系统宝典

哈希G4Dlinux系统宝典

列表复合G4Dlinux系统宝典

List-*G4Dlinux系统宝典

引用G4Dlinux系统宝典

添加分区G4Dlinux系统宝典

ADD PARTITIONG4Dlinux系统宝典

ADD PARTITIONG4Dlinux系统宝典

ADD PARTITIONG4Dlinux系统宝典

ADD PARTITIONG4Dlinux系统宝典

N/AG4Dlinux系统宝典

合并分区G4Dlinux系统宝典

N/AG4Dlinux系统宝典

N/AG4Dlinux系统宝典

COALESCE PARTITIONG4Dlinux系统宝典

N/AG4Dlinux系统宝典

N/AG4Dlinux系统宝典

删除分区G4Dlinux系统宝典

DROP PARTITIONG4Dlinux系统宝典

DROP PARTITIONG4Dlinux系统宝典

N/AG4Dlinux系统宝典

DROP PARTITIONG4Dlinux系统宝典

N/AG4Dlinux系统宝典

交换分区G4Dlinux系统宝典

EXCHANGE PARTITIONG4Dlinux系统宝典

EXCHANGE PARTITIONG4Dlinux系统宝典

EXCHANGE PARTITIONG4Dlinux系统宝典

EXCHANGE PARTITIONG4Dlinux系统宝典

EXCHANGE PARTITIONG4Dlinux系统宝典

合并分区G4Dlinux系统宝典

MERGE PARTITIONSG4Dlinux系统宝典

MERGE PARTITIONSG4Dlinux系统宝典

N/AG4Dlinux系统宝典

MERGE PARTITIONSG4Dlinux系统宝典

N/AG4Dlinux系统宝典

修改默认属性G4Dlinux系统宝典

MODIFY DEFAULT ATTRIBUTESG4Dlinux系统宝典

MODIFY DEFAULT ATTRIBUTESG4Dlinux系统宝典

MODIFY DEFAULT ATTRIBUTESG4Dlinux系统宝典

MODIFY DEFAULT ATTRIBUTESG4Dlinux系统宝典

MODIFY DEFAULT ATTRIBUTESG4Dlinux系统宝典

修改分区的当前属性G4Dlinux系统宝典

MODIFY PARTITIONG4Dlinux系统宝典

MODIFY PARTITIONG4Dlinux系统宝典

MODIFY PARTITIONG4Dlinux系统宝典

MODIFY PARTITIONG4Dlinux系统宝典

MODIFY PARTITIONG4Dlinux系统宝典

修改列表分区:增加值G4Dlinux系统宝典

N/AG4Dlinux系统宝典

N/AG4Dlinux系统宝典

N/AG4Dlinux系统宝典

MODIFY PARTITION ... ADD VALUESG4Dlinux系统宝典

N/AG4Dlinux系统宝典

修改列表分区:删除值G4Dlinux系统宝典

N/AG4Dlinux系统宝典

N/AG4Dlinux系统宝典

N/AG4Dlinux系统宝典

MODIFY PARTITION ... DROP VALUESG4Dlinux系统宝典

N/AG4Dlinux系统宝典

移动分区G4Dlinux系统宝典

MOVE SUBPARTITIONG4Dlinux系统宝典

MOVE SUBPARTITIONG4Dlinux系统宝典

MOVE PARTITIONG4Dlinux系统宝典

MOVE SUBPARTITIONG4Dlinux系统宝典

MOVE PARTITIONG4Dlinux系统宝典

重命名分区G4Dlinux系统宝典

RENAME PARTITIONG4Dlinux系统宝典

RENAME PARTITIONG4Dlinux系统宝典

RENAME PARTITIONG4Dlinux系统宝典

RENAME PARTITIONG4Dlinux系统宝典

RENAME PARTITIONG4Dlinux系统宝典

分割分区G4Dlinux系统宝典

SPLIT PARTITIONG4Dlinux系统宝典

SPLIT PARTITIONG4Dlinux系统宝典

N/AG4Dlinux系统宝典

SPLIT PARTITIONG4Dlinux系统宝典

N/AG4Dlinux系统宝典

截断分区G4Dlinux系统宝典

TRUNCATE PARTITIONG4Dlinux系统宝典

TRUNCATE PARTITIONG4Dlinux系统宝典

TRUNCATE PARTITIONG4Dlinux系统宝典

TRUNCATE PARTITIONG4Dlinux系统宝典

TRUNCATE PARTITIONG4Dlinux系统宝典

4-2子分区表的ALTER TABLE维护操作G4Dlinux系统宝典

维护操作G4Dlinux系统宝典

复合G4Dlinux系统宝典

*-RangeG4Dlinux系统宝典

复合G4Dlinux系统宝典

*-HashG4Dlinux系统宝典

复合G4Dlinux系统宝典

*-ListG4Dlinux系统宝典

添加分区G4Dlinux系统宝典

MODIFY PARTITION ... ADD SUBPARTITIONG4Dlinux系统宝典

MODIFY PARTITION ... ADD SUBPARTITIONG4Dlinux系统宝典

MODIFY PARTITION ... ADD SUBPARTITIONG4Dlinux系统宝典

合并分区G4Dlinux系统宝典

N/AG4Dlinux系统宝典

MODIFY PARTITION ... COALESCE SUBPARTITIONG4Dlinux系统宝典

N/AG4Dlinux系统宝典

删除分区G4Dlinux系统宝典

DROP SUBPARTITIONG4Dlinux系统宝典

N/AG4Dlinux系统宝典

DROP SUBPARTITIONG4Dlinux系统宝典

交换分区G4Dlinux系统宝典

EXCHANGE SUBPARTITIONG4Dlinux系统宝典

N/AG4Dlinux系统宝典

EXCHANGE SUBPARTITIONG4Dlinux系统宝典

合并分区G4Dlinux系统宝典

MERGE SUBPARTITIONSG4Dlinux系统宝典

N/AG4Dlinux系统宝典

MERGE SUBPARTITIONSG4Dlinux系统宝典

修改默认属性G4Dlinux系统宝典

MODIFY DEFAULT ATTRIBUTES FOR PARTITIONG4Dlinux系统宝典

MODIFY DEFAULT ATTRIBUTES FOR PARTITIONG4Dlinux系统宝典

MODIFY DEFAULT ATTRIBUTES FOR PARTITIONG4Dlinux系统宝典

修改分区的当前属性G4Dlinux系统宝典

MODIFY SUBPARTITIONG4Dlinux系统宝典

MODIFY SUBPARTITIONG4Dlinux系统宝典

MODIFY SUBPARTITIONG4Dlinux系统宝典

修改列表分区:增加值G4Dlinux系统宝典

N/AG4Dlinux系统宝典

N/AG4Dlinux系统宝典

MODIFY SUBPARTITION ... ADD VALUESG4Dlinux系统宝典

修改列表分区:删除值G4Dlinux系统宝典

N/AG4Dlinux系统宝典

N/AG4Dlinux系统宝典

MODIFY SUBPARTITION ... DROP VALUESG4Dlinux系统宝典

修改子分区模板G4Dlinux系统宝典

SET SUBPARTITION TEMPLATEG4Dlinux系统宝典

SET SUBPARTITION TEMPLATEG4Dlinux系统宝典

SET SUBPARTITION TEMPLATEG4Dlinux系统宝典

移动分区G4Dlinux系统宝典

MOVE SUBPARTITIONG4Dlinux系统宝典

MOVE SUBPARTITIONG4Dlinux系统宝典

MOVE SUBPARTITIONG4Dlinux系统宝典

重命名分区G4Dlinux系统宝典

RENAME SUBPARTITIONG4Dlinux系统宝典

RENAME SUBPARTITIONG4Dlinux系统宝典

RENAME SUBPARTITIONG4Dlinux系统宝典

分割分区G4Dlinux系统宝典

SPLIT SUBPARTITIONG4Dlinux系统宝典

N/AG4Dlinux系统宝典

SPLIT SUBPARTITIONG4Dlinux系统宝典

截断分区G4Dlinux系统宝典

TRUNCATE SUBPARTITIONG4Dlinux系统宝典

TRUNCATE SUBPARTITIONG4Dlinux系统宝典

TRUNCATE SUBPARTITIONG4Dlinux系统宝典

注意:G4Dlinux系统宝典

当您第一次使用表压缩,将压缩分区引入一个包含位图索引并且只包含未压缩分区的分区表,你必须做到以下几点:G4Dlinux系统宝典

  • 删除所有现存的位图索引和位图分区索引,或者将它们标识为UNUSABLE
  • 设置表压缩属性
  • 重建索引

分区是否包含数据,和引入压缩分区的操作是相互独立的。G4Dlinux系统宝典

另外,这并不适用于包含B-tree索引的分区表以及分区索引组织表。G4Dlinux系统宝典

4-3列出了可以对索引分区进行的维护操作,并指出可以操作的索引类型(全局或局部)。而且,还列出了用于维护操作的ALTER INDEX子句。G4Dlinux系统宝典

全局索引并不反映基表的结构。如果分区,它们可通过范围或散列进行分区。全局分区索引可以共享在分区表上的部分操作,而不是全部。G4Dlinux系统宝典

由于本地索引反映了基表的结构,在对分区或者子分区进行维护操作时,索引分区会自动被维护。因此,维护本地索引分区的必要性大打折扣,并且相应的选项也很少。G4Dlinux系统宝典

4-3 索引分区的ALTER INDEX维护操作G4Dlinux系统宝典

维护操作G4Dlinux系统宝典

索引类型G4Dlinux系统宝典

索引分区类型G4Dlinux系统宝典

范围G4Dlinux系统宝典

哈希和列表G4Dlinux系统宝典

复合G4Dlinux系统宝典

添加索引分区G4Dlinux系统宝典

GlobalG4Dlinux系统宝典

-G4Dlinux系统宝典

ADD PARTITION (hash only)G4Dlinux系统宝典

-G4Dlinux系统宝典

 

LocalG4Dlinux系统宝典

N/AG4Dlinux系统宝典

N/AG4Dlinux系统宝典

N/AG4Dlinux系统宝典

删除索引分区G4Dlinux系统宝典

GlobalG4Dlinux系统宝典

DROP PARTITIONG4Dlinux系统宝典

-G4Dlinux系统宝典

-G4Dlinux系统宝典

 

LocalG4Dlinux系统宝典

N/AG4Dlinux系统宝典

N/AG4Dlinux系统宝典

N/AG4Dlinux系统宝典

修改索引分区的默认属性G4Dlinux系统宝典

GlobalG4Dlinux系统宝典

MODIFY DEFAULT ATTRIBUTESG4Dlinux系统宝典

-G4Dlinux系统宝典

-G4Dlinux系统宝典

 

LocalG4Dlinux系统宝典

MODIFY DEFAULT ATTRIBUTESG4Dlinux系统宝典

MODIFY DEFAULT ATTRIBUTESG4Dlinux系统宝典

MODIFY DEFAULT ATTRIBUTESG4Dlinux系统宝典

MODIFY DEFAULT ATTRIBUTES FOR PARTITIONG4Dlinux系统宝典

修改索引分区的当前属性G4Dlinux系统宝典

GlobalG4Dlinux系统宝典

MODIFY PARTITIONG4Dlinux系统宝典

-G4Dlinux系统宝典

-G4Dlinux系统宝典

 

LocalG4Dlinux系统宝典

MODIFY PARTITIONG4Dlinux系统宝典

MODIFY PARTITIONG4Dlinux系统宝典

MODIFY PARTITIONG4Dlinux系统宝典

MODIFY SUBPARTITIONG4Dlinux系统宝典

重建索引分区G4Dlinux系统宝典

GlobalG4Dlinux系统宝典

REBUILD PARTITIONG4Dlinux系统宝典

-G4Dlinux系统宝典

-G4Dlinux系统宝典

 

LocalG4Dlinux系统宝典

REBUILD PARTITIONG4Dlinux系统宝典

REBUILD PARTITIONG4Dlinux系统宝典

REBUILD SUBPARTITIONG4Dlinux系统宝典

重命名索引分区G4Dlinux系统宝典

GlobalG4Dlinux系统宝典

RENAME PARTITIONG4Dlinux系统宝典

-G4Dlinux系统宝典

-G4Dlinux系统宝典

 

LocalG4Dlinux系统宝典

RENAME PARTITIONG4Dlinux系统宝典

RENAME PARTITIONG4Dlinux系统宝典

RENAME PARTITIONG4Dlinux系统宝典

RENAME SUBPARTITIONG4Dlinux系统宝典

分割索引分区G4Dlinux系统宝典

GlobalG4Dlinux系统宝典

SPLIT PARTITIONG4Dlinux系统宝典

-G4Dlinux系统宝典

-G4Dlinux系统宝典

 

LocalG4Dlinux系统宝典

N/AG4Dlinux系统宝典

N/AG4Dlinux系统宝典

N/AG4Dlinux系统宝典

自动更新索引

在讨论针对分区表和索引的各个维护操作之前,讨论一下可以在ALTER TABLE语句中指定的UPDATE INDEXES子句的影响,是十分重要的。G4Dlinux系统宝典

默认情况下,分区表上的很多维护操作都会使相关的索引或索引分区无效(标识为)UNUSABLE。你必须重建整个索引,或者对于一个全局索引,或者对于每一个分区索引。如果你在ALTER TABLE语句中指定了UPDATE INDEXES子句,数据库会默认这行这些操作。指定UPDATE INDEXES子句会告诉数据库当执行DDL维护操作时的同时去更新索引。这提供了以下优点:G4Dlinux系统宝典

  • 索引更新与基表操作时同步的,不需要你以后手动更新和单独重建索引
  • 全局索引的高可用性,因为他们没有被标识为UNUSABLE,当执行分区表的DDL操作时,这些索引仍是可用的,并且你可以访问那些不受影响的分区表。
  • 你不必查找所有无效索引的名字来重建他们。

在更新本地索引及其分区时,你可以通过可选子句来指定物理和存储特性。G4Dlinux系统宝典

你可以为每个本地索引的每个分区指定物理特性、表空间存储以及日志特性。或者,你可以只指定PARTITION关键字,让数据库按照以下原则来更新分区特性:G4Dlinux系统宝典

  • 对于单个表分区操作(如移动分区和分割分区),相应的索引分区继承了受影响的索引分区的特性。数据库不会生成新的索引分区名称,所以这个操作生成的新的索引分区以及相应的新的表分区都会继承他们原来的名字。
  • 对于合并分区操作,新生成的本地分区索引从新生成的表分区那里继承名称,并且从本地索引中继承其特性。
  • 对于复合分区索引,你可以为每个子分区指定表空间存储特性。

以下子句可以指定UPDATE INDEXES子句:G4Dlinux系统宝典

  •  ADD PARTITION | SUBPARTITION
  •  COALESCE PARTITION | SUBPARTITION
  •  DROP PARTITION | SUBPARTITION
  •  EXCHANGE PARTITION | SUBPARTITION
  •  MERGE PARTITION | SUBPARTITION
  •  MOVE PARTITION | SUBPARTITION
  •  SPLIT PARTITION | SUBPARTITION
  •  TRUNCATE PARTITION | SUBPARTITION

SKIP_UNUSABLE_INDEXES初始化参数

SKIP_UNUSABLE_INDEXES是默认设置为TRUE的初始化参数。当索引或者索引分区被标识为UNUSABLE时,该设置禁止由此产生的错误报告。如果你不希望数据库选择其他的执行计划,以避免无法使用的索引,那么你应该将此参数设置为FALSEG4Dlinux系统宝典

自动更新索引的注意事项

当指定UPDATE INDEXES子句时,需要注意以下事项:G4Dlinux系统宝典

分区DDL语句需要更长的时间来执行,因为先前标记为UNUSABLE的索引需要进行更新。尽管如此,你必须比较它与与执行DDL操作然后重新生成所有索引的时间。一个经验法则是,如果该分区的大小小于该表大小的5%,自动更新索引还是相对较快的。G4Dlinux系统宝典

删除、阶段和交换操作不再是快速操作,同样的,你需要比较一下二者的时间。G4Dlinux系统宝典

当你更新包含全局索引的表时:G4Dlinux系统宝典

索引被更新,同时更新操作生成日志记录,并产生redoundo日志。相反,如果你重建整个全局索引,你可以在NOLOGGING模式下进行操作。G4Dlinux系统宝典

手动重建整个索引将会生成一个更有效的索引,因为它更紧凑,提高空间利用率。G4Dlinux系统宝典

索引组织表不支持UPDATE INDEXES子句。但是,为了保持索引组织表的全局索引的可用性,在执行删除分区、截断分区和交换分区操作时,需要指定UPDATE GLOBAL INDEXES子句。对于上述列表中的其余操作,索引组织表的全局索引保持可用。此外,索引组织表的本地索引分区在执行MOVE PARTITION操作之后仍然可用。G4Dlinux系统宝典

更多Oracle相关信息见 专题页面 G4Dlinux系统宝典



沪ICP备10206494号-4