读书人

一些安插记录的方法比较

发布时间: 2012-10-23 12:12:21 作者: rapoo

一些插入记录的方法比较

有同事写了个工具,对C#中,两种插入记录到SQL SERVER数据库的方法进行了比较,发现二者的性能相差天与地:


1、SqlBulkCopy,批量插入方式,5万条记录,仅花4秒

2、拼凑出一条条SQL语句,单条插入,5万条记录,耗时7分钟


//方式一,批量插入

TRUNCATE TABLE table1;INSERT INTO [test].[dbo].[Table1]           ([Int]           ,[Long]           ,[Float]           ,[Real]           ,[Date]           ,[NText]           ,[String1]           ,[String2]           ,[String3]           ,[String4])SELECT [Int]      ,[Long]      ,[Float]      ,[Real]      ,[Date]      ,[NText]      ,[String1]      ,[String2]      ,[String3]      ,[String4]  FROM [test].[dbo].[Table2]

结果也是4秒,不相伯仲。


方式一里面,SqlBulkCopy,是将一个DataTable对象导入到数据库中,导入前,直接编辑这个DataTable就行了,比较方便。

另外,这个方法类似于SQL SERVER里面的BULK INSERT,而BULK INSERT在数据库为简单模式的情况下,是不产生日志的,所以这个SqlBulkCopy,也就是方式一应该是最快的。

SqlBulkCopy这个方法我觉得有点类似使用SqlDataAdapter,以往使用经验中,这个操作也比单条插入要快,但那时不知道是什么原因。

其实现在也不清楚是什么原因啊!





读书人网 >其他数据库

热点推荐