(转)Oracle Partitioned Table:exchange的利用

周末作了一天的Partitioned Table旧有资料的归档。

主要是用Partitioned TableExchange功能。

 

基本步骤:

1. 构造能用来做exchangetable A

2. 进行exchange

3. segments从物理上转移到归档用的tablespace.

4. Drop exchange出的Partition

5. drop PartitionTablespace—drop

6. Rebuild A中被mark unusableIndex.

 

ExchangePartitioned Table 技术中一个非常有用的功能,尤其是当需要将旧资料进行归档的时侯。

Exchange的限制:

Range-Hashßà hash

Range-Listßà List

Range/HASH/LIST ßànon-partitioned table

.. .. ..

以上是9i administrator guides 归类出来的,简而言之,就是Partitioned Table中要用来做exchangePartition的类型必须和所交换的Table(Partition)一致。

 

所以在第一步构造用来做exchangeTable的时侯,类型的一致很重要。

比如,如果是Range-Hash Partitioned table要把一个Range Partition exchange出来,那用来交换的Table必须和这个Range Partition 类型一致。

也就是说这个Table必须是Hash Partitioned Table.

 

进行Exchange的语法:

Illustrate:

alter table Part_table exchange partition Part_0710

with table Part_arch0710

including indexes without validation update global indexes;

 

几个重点

1. Including indexes: 表明将Local indexes 一同exchange出来。此选项需要用来与之exchangetable 有建立一样的Index.

2. Without validation: with validation是验证是否rows被正确的Mapping. Without validation则是跳过此验证,在这种情况下,exchange 只做data dictionary的更新(这也是exchange快的原因,因为它根本上只是在data dictionary里将segments的归属作了变更)。这里有一个例外,如果在exchange中的tablePK或者unique constraint,是会强制作with validation,不管有没有指定without validation,这样做是为了保证constraint的完整性。如果要避免这个问题,可以在exchange之前先disable相关的constraint,在完成后再enable

3. Update global indexes:使用此选项可避免Partitioned tableglobal indexexchange后被mark unusable。用这种方式在功能上不会影响到正常业务,但其过程中产生的额外loading会对业务性能的表现产生影响。如果不使用此选项,则必须在exchange后对global index进行rebuild。不过这个选项只会updateexchangePartitiontableglobal index。如上的例子,表Aglobal index是不会被update,所以如果接下来exchange出的Partition的资料还要用的话,依然需要rebuild,但这已经不影响正常业务。

4. Drop exchange出来的Partition所在的Tablespace之前,注意把segments从物理上移动到归档Table A所在的Tablespace。上文提到了exchange只是在data dictionary里对segments的归属作了改变。

5. Exchange后,空的Partition可以直接DROP,无须带update global index

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值