2013-09-29 43 views
-1

我們有超過1000個平面文件,每個文件大約有100萬條記錄。我們需要將所有這些數據插入到數據庫的單個表中,並且表不能分區。我們試圖使用SSIS實現並行處理,通過它我們想要使用SSIS將數據從平面文件中同時插入到一個表中,從而運行多個批量插入過程。從平面文件插入的順序也不重要。 我們有一個帶有MULTIPLEFLATFILE連接管理器的SSIS包,其中包含一個flatfile任務和一個OLE DB目的地任務,並檢查了「快速加載」和表鎖定選項。通過這個,我們可以看到只有一個SPID可以將數據插入表中。我們希望至少有5個SPID /進程同時插入/並行插入表中。請在這方面協助我。SSIS - 將多個文本文件中的數據加載到單個表中,並行處理

感謝

+0

現在需要多長時間,您需要多長時間?我問,因爲在這種情況下,複雜性/努力/成本與速度方面的回報之間存在非常實際的折衷。 – RBarryYoung

+0

目前它需要5-6小時來完成加載,但問題是隻有一個批量插入SPID,我看到在DB上工作。我想設置包,以便我可以併發插入到數據庫中。 Addl的服務器甚至沒有接近其峯值,並有16個處理器和64GB內存。使用並行/並行插入,我們想將插入時間減少到幾個小時 – Amam

回答

0

爲了獲得最大性能的刀片,你想使用的OLE DB目標和那裏,指定快速加載選項(在下拉),然後檢查表鎖。這將使數據以最快的速度進入表格。但是,您現在將被迫進入連續加載。

爲了讓並行加載運行,您需要讓每個線程加載到自己的表中,然後在最後將所有數據合併到最終目標中。除了簡單的元數據操作外,基本上與合併分區背後的邏輯相同,您將移動數據兩次。

+0

有沒有什麼辦法,我們可以實現並行加載而不需要單獨的線程加載到像上面提到的合併選項那樣的單獨表中 – Amam

+0

我認爲這是最好的選擇。但是,如果表是沒有索引的堆,則可能能夠完成並行批量加載。在這種情況下,SQL Server不關心行到達的順序。如果您有任何索引,SQL Server將需要對行到達的訂單進行更多控制,因爲即使數據按索引的順序到達,它也必須在數據進入時更新索引。 –

相關問題