如何从表中分离分区并将其附加到oracle中的另一个分区?

时间:2012-01-25 09:31:32

标签: oracle oracle11g partitioning

我有一张包含大量数据的表格(比如数百万条记录,只是一个案例研究!)5年,每年都有一个分区。现在我想保留最近2年的数据,并将剩下的3年数据转移到一个名为archive的新表中?

什么是理想的方法,最短的停机时间和高性能?

1 个答案:

答案 0 :(得分:4)

alter table exchange partition 

就是答案。此命令使用表的段扩展分区的段。它速度很快,因为它只做一些参考交换。 所以,你需要一些临时表,因为AFAIK你不能直接交换它们。

类似的东西:

create table tmp_table(same columns);
Add partition p_2011 in table ARCH_TABLE;

ALTER TABLE CURR_TABLE EXCHANGE PARTITION P_2011 WITH TABLE tmp_table;
ALTER TABLE ARCH_TABLE EXCHANGE PARTITION P_2011 WITH TABLE tmp_table;

请在运行前测试您的代码。