Insert Query vs SqlBulkCopy - 从一个`DataBase`到另一个`DataBase`

时间:2015-11-18 07:31:43

标签: c# .net sql-server

Insert Query vs SqlBulkCopy - 对于从一个DataBase到另一个DataBase

的插入记录,哪一个最佳表现

我知道SQLBulkcopy用于大量的记录。

如果记录小于10,那么哪一个更好。

请分享您的观点。

2 个答案:

答案 0 :(得分:1)

由于您要求的记录少于10条,我建议您使用简单的插入查询。

但是如果你想使用SQLBulkCopy,那么首先应该知道何时使用它。

Read For Knowledge

BULK INSERT

BULK INSERT命令是将文本文件中的数据导入SQL Server的进程内方法。因为它与Sqlservr.exe一起运行,所以将数据文件加载到SQL Server是一种非常快速的方法。

答案 1 :(得分:0)

这是a link to a site的一些基准测试。

我过去曾广泛使用过SqlBulkCopy,效率非常高。但是,您可能需要重新设计表格才能有效地使用它。例如,当您使用SqlBulkCopy时,您可能希望使用客户端生成的标识符,因此您必须创建一些允许您生成稳定,健壮且可预测的ID的方案。这与使用自动生成的标识列的典型插入表格非常不同。

作为SqlBulkCopy的替代方案,您可以使用我提供的链接中所讨论的方法,其中您使用union allinsert into语句的组合,它也具有出色的性能。尽管如此,随着数据集的增加,我认为SqlBulkCopy将是更快的选择。这里可能需要采用混合方法,在记录计数较高时切换到SqlBulkCopy

我重新SqlBulkCopy将赢得更大的数据集,但您需要了解可以使用SqlBulkCopy操作来放弃某些检查。这当然会加快速度,但也会让你违反你对数据库施加的条件。