我必须在一个表中执行多个插入操作。现在,我有一个我迭代的对象列表,并且我对每个对象执行一个带有插入语句的 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/