2017-01-25 20 views
0

我需要將大約40k行從Oracle數據庫中的表複製到另一個數據庫中的另一個表中。將數據從Oracle DB中的表複製到具有相似模式的另一個數據庫表

由於我必須每天都這樣做,我們可以在較少的時間內完成這項工作的最佳方法是什麼。

一個我們正在考慮使用DB選項的鏈接

+0

數據庫位於同一主機或不同主機上嗎?如果不同的主機,它們之間有什麼樣的網絡?你是應付整個桌子,還是40k只是行的一個子集?目標表是空的,還是填充了? – BobC

+0

@BobC主機是不同的,但在同一個firewall.sourcedb是一個視圖,我們正在複製所有數據,目標將是空的 – SKR

+0

你真的需要複製或只是從第二分貝訪問它們? – Vlad

回答

0

40K是行的數量少,因此dblinks將正常工作。如果您正在複製數百萬行,那麼您將不得不使用其他方法。

此外,您可以執行表的導出(exp),然後使用fromuser和touser參數在目標上導入(imp)。

您也可以使用datapump代替導出。

+0

如果數據增長到100k,使用dblinks的性能如何。並複製到一個文件使用假脫機更好的選擇比複製到數據庫。 – SKR

+0

您還需要考慮產生40k行的視圖。這種觀點有多複雜?基本上我所得到的是,什麼是你的瓶頸?一世。檢索行? II。運輸他們? III。寫他們? – BobC

+0

100k仍然可以。一旦你開始走了數百萬行,那麼你必須擺脫dblinks,特別是如果它在擁塞的網絡上。假脫機爲多個插入語句總是比直接複製或導出/導入慢。無論如何,單刀片不好。您必須使用批量加載機制。 – sandman

相關問題