欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

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

程序员文章站 2022-06-16 19:07:13
...

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

交换分区

注意:

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

然后,在交换分区操作完成后,重新启用约束。

交换一个范围、哈希或列表分区 交换间隔分区表的一个分区

你可以在一个间隔分区表中交换间隔分区。但是,你必须确保在交换分区之前该间隔分区已经创建。你可以让数据库通过锁定间隔分区来创建分区。

交换引用分区表的一个分区

你可以在一个引用分区表中交换分区,但是你必须确保在父表的相应分区中你引用的数据是可用的。

交换表的一个分区和虚拟列

你可以在包含虚拟列的情况下进行交换分区。为了使包含虚拟列的分区表的分区交换成功,你必须创建一个表,该表需要匹配分表中一个分区的所有非虚拟列的定义。你并不需要包括虚拟列定义,除非虚拟列上定义的有约束或者索引。

在这种情况下,你必须包含虚拟列定义,用来匹配分区表的约束和索引定义。该方案也适用于基于虚拟列的分区表。

交换一个哈希分区表和一个复合哈希分区

首先,,创建一个哈希分区表:

填充该表后,创建一个范围哈希分区表,如下:

交换复合哈希分区表的一个子分区

交换一个列表分区表和一个复合列表分区 交换复合列表分区表的一个子分区

ALTER TABLE ... EXCHANGE SUBPARTITION语句的含义和上面“交换复合哈希分区表的一个子分区”章节的描述是一样的。

交换一个范围分区表和一个复合范围分区

接下来,交换分区。需要注意的是,由于要交换一个间隔分区,因此首先要锁定该分区以确保该分区被创建。

交换复合范围分区表的一个子分区

ALTER TABLE ... EXCHANGE SUBPARTITION语句的含义和上面“交换复合哈希分区表的一个子分区”章节的描述是一样的。