c# - 几个插入性能 c#

标签 c# database

我必须在一个表中执行多个插入操作。现在,我有一个我迭代的对象列表,并且我对每个对象执行一个带有插入语句的 ExecuteNonQuery。

我想知道是否有更快的方法来做到这一点。 这样,插入 800 个寄存器只需几分钟。

我在Java中使用过executeBatch方法,谁是为了这个提议,在c#中有没有类似的东西。

问候!

最佳答案

插入 [相对] 快速/便宜。 提交缓慢/昂贵。

除非它是一个延迟连接,多个(如数百个)插入语句应该没问题。

“...需要几分钟...”听起来好像事务没有被使用(因此可能有 800 次提交——哎哟!)。在 C# 中控制事务的最简单方法之一是使用 TransactionScope :

using (var connection = ...)
using (var tx = new TransactionScope()) {
   foreach (var row in rows) {
      // insert row
   }
   // commit all at once
   tx.Complete();
}

我只会考虑限制交易数量(并因此限制提交数量)不足以满足功能要求的方法。

快乐编码。

关于c# - 几个插入性能 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7762036/

相关文章:

c# - IPC 使用 Protobuf 和内存映射文件 C#

linux - maxscale:后端服务器不接受用户身份验证

database - 使用 SQL Server Express 进行开发时如何管理版本控制?

php - 为每个帐户或几个大表动态创建 mysql 表

sql - 将sqlite数据库转换为sdf文件

c# - 在没有回发的情况下在 asp.net 中上传文件

C# ASP.NET 页面离开事件?

c# - 如何使用 MS ACCESS QUERY 消除重复值

c# - 是否可以反射(reflect)托管程序集?

C#:如何从 WebBrowser 元素获取文档标题?