交换分区¶
交换分区:交换分区操作,可以实现相同结构(列的类型)的普通表与指定分区表( 范围、列表和哈希分区表 )的交换,同时也可以指定实现索引交换,在数据交换过程中也可以指定检查数据的合法性。
交换分区操作,可以实现相同结构(列的类型)的表与指定(子)分区表相交换。交换分区操作实质是交换彼此的数据段。交换的双方可以为:
- 范围、列表和哈希的一级子分区表同未分区的表;
- 复合分区表中的一级子分区表同一级子分区表;(此情况下,要求交换双方具有相同的分区信息)
- 复合分区表中的二级子分区表同未分区的表。
在交换分区时,可以指定参数INCLUDING/EXCLUDING INDEXES,以决定是否同时交换彼此的索引。交换索引是交换彼此的索引数据段的过程,因此需要符合以下条件:
- 分区表上存在局部分区索引
- 局部分区索引上的索引分区只索引了对应的表分区的数据。只有这样,才会在交换分区后不会引起索引内容的丢失。也就是说交换索引,交换的是局部分区索引。
- 待交换表上有对应的索引
- 索引的个数必须相同,且交换双方的索引必须要在结构上相同,包括相同的索引类型(比如同为B+树索引)、相同的索引项。
- 在交换分区时,可以指定参数WITH/WITHOUT VALIDATION,以决定是否同时检查交换的数据段中的内容,是否符合待交换分区的分区约束,默认检查交换的数据段中的内容。
另外,若交换间隔子分区表,首先要确定被交换的间隔子分区表已经真实存在。