use*_*190 3 c# sql-server ado.net
我正在做一些涉及将一批记录插入Sql数据库的工作.批量的大小会有所不同,但为了论证,我们可以说每5秒有5000条记录.但可能会少一些.多个进程将写入此表,没有任何内容正在从中读取.
我在快速测试中注意到的是,在整个批量插入中使用SqlTransaction似乎可以提高性能.
例如
SqlTransaction trans = Connection.BeginTransaction()
myStoredProc.Transaction = trans;
sampleData.ForEach(ExecuteNonQueryAgainstDB);
transaction.Commit();
Run Code Online (Sandbox Code Playgroud)
我对能够回滚我的更改不感兴趣所以我不会真正考虑使用事务,除非它似乎提高了性能.如果我删除此事务代码,我的插入从300ms到大约800ms!
这是什么逻辑?因为我的理解是事务仍然将数据写入数据库但锁定记录直到它被提交.我原以为这会有一个开销......
我正在寻找的是这种插入的最快方法.
| 归档时间: |
|
| 查看次数: |
5342 次 |
| 最近记录: |