我们经常会遇到把批量的数据导入SQL Server上,利用for循环拼出来的sql或者使用参数的方式传递或者使用事务等不同方式的传递数据,
虽然都能达到目的,可是这些方式的传递效率不是很高。
在.NET Framwork 2.0以后,提供了一个新的类SqlBulkCopy类,它在性能上有明显的优势(注:在同样条件下,SqlBulkCopy方法比直接用Sql语句插入
数据的效率高出近20倍左右),它可以通过让DataSet或是DataReader中大量的数据通过数据流直接进行装载,然后可以将这些记录添加到指定的数据表中。
使用SqlBulkCopy类进行数据插入其原理是采用了SQL Server的BCP协议进行数据的批量复制。
所以,建议在大批量数据导入SQL时,最好利用SqlBulkCopy类.
关于SqlBulkCopy类的介绍和使用方法,可参照下边的URL:
http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy.aspx
ms-help://MS.MSDNQTR.v90.en/fxref_system.data.sqlclient/html/800d5dba-09c1-a7ea-8545-8731f6870b68.htm#exampleToggle |
|