我有一张包含大量数据的表格(比如数百万条记录,只是一个案例研究!)5年,每年都有一个分区。现在我想保留最近2年的数据,并将剩下的3年数据转移到一个名为archive的新表中?
什么是理想的方法,最短的停机时间和高性能?
答案 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;
请在运行前测试您的代码。