我有接收數據流格式如下批量插入SQL服務器數以百萬計的記錄
IDX|20120512|075659|00000002|3|AALI |Astra Agro Lestari Tbk. |0|ORDI_PREOPEN|12 |00000001550.00|00000001291.67|00001574745000|00001574745000|00500|XDS1BXO1| |00001574745000|ݤ
IDX|20120512|075659|00000022|3|ALMI |Alumindo Light Metal Industry Tbk. |0|ORDI |33 |00000001300.00|00000001300.00|00000308000000|00000308000000|00500|--U3---2| |00000308000000|õÄ
該數據來自於數百萬行和序列00000002....00198562
Windows服務應用程序,我必須分析和將它們按照順序插入到數據庫表中。
我的問題是,將這些數據插入到我的數據庫中的最佳方式(最有效)是什麼?我試圖用一個簡單的方法來打開一個SqlConnection對象,然後生成一個SQL插入腳本的字符串,然後使用SqlCommand對象執行腳本,但是這個方法耗時過長。
我讀過我可以使用Sql BULK INSERT,但它必須從文本文件中讀取,這種情況下是否可以使用BULK INSERT? (我以前從未使用過)。
謝謝
更新:我知道SqlBulkCopy的,但它要求我有數據表第一,這是很好的表現?如果可能,我想直接從我的數據源插入到SQL Server,而不必在內存中使用DataTable。
「按照順序插入」是什麼意思?爲什麼插入行的順序很重要?無論插入順序如何,它們都按照[聚簇索引](http://msdn.microsoft.com/zh-cn/library/aa933131.aspx)中指定的順序存儲。 –