我有一張擁有大量數據的表格(說的是數百萬條記錄,它只是一個案例研究,雖然!)5年,每年有一個分區。現在我想保留過去2年的數據,並將其餘的3年數據轉移到一個稱爲存檔的新表格中?如何從表中分離分區並將其附加到Oracle中的另一個分區?
什麼是最理想的方法,最少的停機時間和高性能?
我有一張擁有大量數據的表格(說的是數百萬條記錄,它只是一個案例研究,雖然!)5年,每年有一個分區。現在我想保留過去2年的數據,並將其餘的3年數據轉移到一個稱爲存檔的新表格中?如何從表中分離分區並將其附加到Oracle中的另一個分區?
什麼是最理想的方法,最少的停機時間和高性能?
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;
請試運行之前測試你的代碼。
關閉選民:這是一個關於數據操作的問題。在大多數情況下,DBA不會涉及這一點。 db程序員必須自己做。 –
@FlorinGhita [dba.se]處理比DBA更多的東西;)雖然我不是VtC – Sathya
@Sathya,我明白。但我認爲這個問題在這裏適合,在stackoverflow上。可能對dba.stackexchange.com很好,但在這裏也可以。 –