从C#在SQL Server中插入记录的最快方法是什么?

时间:2018-03-19 12:36:54

标签: c# sql-server-2012

我有5个表,对于每个表我想删除数据并插入100条记录。 所有操作都应该在单个事务中进行。

1 个答案:

答案 0 :(得分:3)

实际上,100条记录并不多;如果性能是您的目标,您可以尝试使用SqlBulkCopy - 这使用原始TDS,并通过可选constructor argument支持交易。关于如何提供数据:SqlBulkCopy接受DataTable或数据阅读器; “FastMember”允许您将List<T>或类似的数据读取器视为数据读取器(如果有帮助的话)(请参阅bottom of this page上的示例)。但是,对于使用常规参数化TSQL操作执行相同操作时,您应该小心实际的时间,就像100这样的数字保证 SqlBulkCopy会更快。< / p>

SqlBulkCopy的替代方案是“表值参数”;这需要更多配置,因为需要在服务器等上定义用户类型,但是;它可以工作。