在SQL中插入批量数据:OLEDB IRowsetFastLoad与Ado.Net SqlBulkCopy

时间:2010-11-19 23:44:00

标签: sql-server ado.net oledb sqlbulkcopy

我正在评估在SQL Server中插入大量数据的不同方法。我从Ado.Net找到了SqlBulkCopy类,从OLEDB找到了IRowsetFastLoad接口。据我所知,IRowsetFastLoad没有映射到C#,这是我的基础平台,所以我正在评估是否值得为.net创建IRowsetFastLoad的包装器,所以我可以在我的应用程序上使用它。 / p>

任何人都知道IRowsetFastLoad实际上是否会比SqlBulkInsert更好 - 是否值得创建这样的包装器?

1 个答案:

答案 0 :(得分:2)

SqlBulkCopyIRowsetFastLoad的托管等价物,它们的表现应该相似。在客户端,作为一般规则,由于绑定的可用性,OleDB比ADO.Net更快,这允许更快地将数据传入和传出API(需要更少的memcopy,因为缓冲区是已知的,固定的和预先知道的-allocated)。 ADO.Net提供了一种更简单的编程模型,但不可能从ADO.Net获取数据而无需复制。但对于除了最关键的访问之外的所有访问,都应该无法衡量差异。

对于重要的差异,服务器访问,他们都将使用快速加载INSERT BULK API(不能从直接的T-SQL获得)以及真正重要的内容。