2009-12-12 110 views

回答

8

最快方式是使用SSIS具有平行讀,NUMA affinitizes客戶端,分區寫入和所有分區切換到一個表中底。這會加載你more than 2 TB per hour

如果您有合適的文本文件,那麼可能會批量複製實用程序。

如果您想從您的進程中插入,則可以使用SqlBulkCopy.WriteToServer,但必須將數據作爲IDataReader呈現,或者可以使用straigh SqlCommand插入。之後,如果你批量插入提交,你將會獲得一個很好的trhoughput。通常的瓶頸是單語句提交時的日誌刷新。

+0

我很高興我沒有嘗試回答這個問題......我敢肯定它在他的情況下不太實際(我猜他最終會使用批量複製),但哇,相當「最快」的方式。 .. – LorenVS 2009-12-12 00:23:56

+0

這是不真實的,但是是有用的信息作爲參考知道什麼是可能的。一旦你看到專業人員如何做到這一點,你可以找到創新的方法將其應用於手頭的任務。 – 2009-12-12 00:26:07

+0

我興奮的只是想着這麼做......:D真棒回答... !!! – KSimons 2009-12-12 00:48:35

0

bcp效用是快如閃電和配置。雖然它是一個獨立的實用程序,它從命令行運行,肯定可以從C#召喚。

+0

的主要問題我用這個看到的是,我需要從磁盤中讀取數據,解析它,然後將它寫出到一個文件中,然後調用bcp。從內存中直接進行任何操作 - > sql? – esac 2009-12-12 00:17:53

0

取決於你的輸入文件格式(1)它是適合批量複製,所以,使用它,(2)它不適合批量複製或你需要額外的處理/檢查/等。在服務器 - 邊所以不要跳與多線程插入循環,承諾每1000行以上,並且可能使用陣列插入

相關問題