azz*_*axp 4 oracle partitioning oracle11g
我有一个包含 5 年的海量数据(比如数百万条记录,但这只是一个案例研究!)的表,每年都有一个分区。现在我想保留最近 2 年的数据,并将其余 3 年的数据传输到一个名为存档的新表中?
停机时间最短且性能较高的理想方法是什么?
alter table exchange partition 
就是答案。该命令将分区的段与表的段交换。它的速度是光速,因为它只进行一些参考交换。所以,你需要一些临时表,因为据我所知你不能直接交换它们。
就像是:
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;
请在运行之前测试您的代码。