2012-01-25 25 views
4

我有一張擁有大量數據的表格(說的是數百萬條記錄,它只是一個案例研究,雖然!)5年,每年有一個分區。現在我想保留過去2年的數據,並將其餘的3年數據轉移到一個稱爲存檔的新表格中?如何從表中分離分區並將其附加到Oracle中的另一個分區?

什麼是最理想的方法,最少的停機時間和高性能?

+0

關閉選民:這是一個關於數據操作的問題。在大多數情況下,DBA不會涉及這一點。 db程序員必須自己做。 –

+0

@FlorinGhita [dba.se]處理比DBA更多的東西;)雖然我不是VtC – Sathya

+1

@Sathya,我明白。但我認爲這個問題在這裏適合,在stackoverflow上。可能對dba.stackexchange.com很好,但在這裏也可以。 –

回答

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; 

請試運行之前測試你的代碼。

+0

感謝您的迴應,我想知道目標表拱是否有必要有分區。 – azzaxp

+0

是絕對必要的。這是示例中的第二行(添加分區)。我建議你這些表應該有相同的分區,相同的範圍。 –

+0

目標表不一定具有分區。 – azzaxp

相關問題