我有接收数据流格式如下批量插入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)中指定的顺序存储。 –