2010-06-10 115 views
0

我需要從Oracle 10G數據庫表中導出1億個數據行(平均行長度〜100字節)到SQL Server(通過WAN/VLAN,每秒6MBits)定期進行。到目前爲止,這些都是我嘗試過的選項和快速總結。有沒有人試過這個?還有其他更好的選擇嗎?哪種選擇在性能和可靠性方面最好?所花費的時間是使用少量數據的測試計算出來的,然後將其推算出來以估計所需的時間。將大量數據從Oracle 10G導出到SQL Server 2005

  1. 在SQL服務器或SSIS包上使用數據導入嚮導來導入數據。完成任務需要大約150個小時。
  2. 使用Oracle批處理作業將數據轉換爲以逗號分隔的平面文件。然後使用SSIS包將該文件FTP到SQL服務器,然後直接從平面文件中加載。這裏的問題是預計以GB運行的平面文件的大小。
  3. 雖然這個選項有很大不同,但我甚至會考慮使用鏈接服務器在運行時直接查詢Oracle數據以避免引入數據的選項。性能是一個大問題,我在創建表索引方面對Oracle數據庫的控制有限。

問候,

單珠

回答

1

我加載50 GB的文件中的所有time..this是我做的。如果我有一個鏈接的服務器,我使用SSIS來加載表格,只要確保選擇FAST LOAD和Table Lock,使sute表鎖定被檢查,否則它不會是一個真正的最小化日誌操作,你的DB也必須是在SimpleBulk恢復模式

看到圖像

alt text

如果我我喜歡BCP出來,然後BCP或BULK INSERT

0

想想將進程分成塊,所以你可以在第一段中完成一些事情llel。例如,如果從Oracle導出100,000個記錄到平面文件的時間等於複製文件的時間,這等於將文件導入SQL的時間,那麼您可以構建一個系統,這些同時像流水線一樣。這樣,如果一件失敗,你不必重新開始。顯然這需要一些實驗。您沒有定義可能會在某種程度上規定設計的「常規基礎」,系統負載只是其中的一種權衡。

乾杯, Brian

相關問題