【问题标题】:Is there an equivalent feature of Oracle's Array Binding in SQL Server?SQL Server 中是否有与 Oracle 的数组绑定等效的功能?
【发布时间】:2011-09-06 11:15:06
【问题描述】:
我刚刚在 Oracle 中为我的 .Net 应用程序使用了这个功能,并且刚刚使用 ODP.Net 在 15 秒内插入了 120 万条记录。
我想要 SQL Server 中的这种性能,所以想知道 SQL Server 中是否有替代/相同的功能?
谢谢
【问题讨论】:
-
不知道 Oracle Array Binding / ODP.NET 是什么。像SqlBulkCopy这样的东西吗?
标签:
c#
.net
sql-server
database
oracle
【解决方案1】:
这是我发现的:
在应用程序中,数据插入的最大开销之一
数据库出于插入目的往返于数据库。
ADO.Net 提供了一种将大量数据复制到 SQL 服务器的机制
使用 SqlBulkCopy。
但是为了向 Oracle 中插入批量数据
数据库我们需要 ODP.NET (Oracle Data Provider for .NET) 的帮助。
假设 ODP.NET 已经安装,添加一个参考
“Oracle.DataAccess”到您的解决方案。下面的代码演示了如何
oracle的批量复制可以使用数组绑定来实现。
马丁是对的。
在 SQL Server 中,您应该在 SO 中使用 SqlBulkCopy 很多关于它的问题:
What's the drawback of SqlBulkCopy
【解决方案2】:
我已经研究过了,SQL Server 中有一个 BULK INSERT,它使用文件导入数据,比 SqlBulkCopy 类更快
但是,如果没有执行确切的测试,我不确定这与 Oracle 的表现如何