Oracle 11g维护分区(四)——Exchanging Partitions


交换分区

你可以通过交换数据段将一个分区(或子分区)转化为一个非分区表,也可以将一个非分区表转化为一个分区表的分区(或子分区)。你也可以将一个哈希分区表转化为一个复合哈希分区表的一个分区,或者将一个复合哈希分区表的一个分区转化为一个哈希分区表。类似的,你可以将一个【范围|列表】分区表转化为一个复合【范围|列表】分区表的一个分区,或者将一个复合【范围|列表】分区表的一个分区转化为一个【范围|列表】分区表。

当你有一个需要将非分区表转化成一个分区表的分区的应用时,交换表分区是非常有用的。例如,在数据仓库环境下,交换分区有利于将新增数据快速加载到一个现存分区表。一般来说,OLTP和数据仓库都受益于从一个分区表中交换出旧的分区数据。该数据从分区表中清除,而无需实际删除,并可以在以后分别归档。

当你交换分区时,日志属性将被保留。你可以指定本地索引是否也进行交换(INCLUDING INDEXES子句),并且可以指定行是否以合适的映射进行验证(WITH VALIDATION子句)

注意:

当你给交换分区操作指定WITHOUT VALIDATION子句时,这通常是一个非常快速的操作,因为它只涉及到更新数据字典。但是,如果交换操作涉及到的表或者分区表启用了主键或者唯一约束,那么执行交换操作时会默认执行WITH VALIDATION选项来维持约束的完整性。

为了避免这种情况下验证操作的开销,在执行交换分区操作之前为每个约束执行以下语句:

相关内容