Joh*_*zen 7 .net c# database sql-server bulkinsert
我在内存中有一个DataTable,我需要直接转储到SQL Server临时表中.
插入数据后,我将其转换一点,然后将这些记录的子集插入永久表中.
此操作中最耗时的部分是将数据导入临时表.
现在,我必须使用临时表,因为这个应用程序的多个副本一次运行,我需要一层隔离,直到实际插入到永久表中.
从C#DataTable批量插入到SQL临时表的最快方法是什么?
我不能使用任何第三方工具,因为我正在转换内存中的数据.
我目前的方法是创建一个参数化的SqlCommand:
INSERT INTO #table (col1, col2, ... col200) VALUES (@col1, @col2, ... @col200)
Run Code Online (Sandbox Code Playgroud)
然后为每一行清除并设置参数并执行.
必须有一种更有效的方式.我能够在几秒钟内读取和写入磁盘上的记录......
SqlBulkCopy将以非常快的速度获取数据.
我不久前在博客上写了如何最大限度地提高性能.那里有一些统计数据和例子.我比较了两种技术,1使用SqlDataAdapter,1使用SqlBulkCopy - 底线是批量插入100K记录,数据适配器方法花费约25秒,相比之下,SqlBulkCopy只有~0.8s.
| 归档时间: |
|
| 查看次数: |
4243 次 |
| 最近记录: |