SqlBulkCopy是有效的单行插入的错误选择吗?

本文关键字:选择 错误 单行 有效 SqlBulkCopy 插入 | 更新日期: 2023-09-27 18:17:07

早上好

我有一个用c#编写的服务,它每15秒左右执行和插入一行。这个时间间隔是用户可定义的,但目前15秒是目标时间间隔。

我读过这篇文章:SqlBulkCopy对单个记录?这清楚地解释了使用常规插入优于执行单行批量插入的吞吐量优势。但是它也提到(或暗示)常规插入比批量插入对CPU的消耗更大一些。

由于我正在编写的服务是一个支持服务,并且插入在给定的间隔内被人为地限制为只有1个,我想知道上面的含义是否为在常规插入上使用SqlBulkCopy的理由。显然,我希望我的服务尽可能轻量级。

SqlBulkCopy是有效的单行插入的错误选择吗?

您文章中的答案说SqlBulkCopy慢4.4倍,并且占用简单SQL命令的两倍CPU。你读错了答案(或者我读错了),它说SqlBulkCopy比常规插入更占用CPU,这更有意义。

答案很简单:如果您100%确定只需要插入一条记录,则坚持使用SQL命令。

即使是我的库c# Bulk操作也不会使用SqlBulkCopy,直到它达到特定的行数,通常是10,因为SqlBulkCopy太重了。