哪个更有效——在 .net 代码中使用 IDbTransaction 还是在数据库中处理它?为什么?
应该在哪些情况下使用它们?
最佳答案
当谈到基于连接的事务 (IDbTransaction
) 时,整体性能应该非常相似 - 但通过在 .NET 代码中处理它,您可以方便地跨越多个数据库操作相同的连接。如果您在内部 TSQL 中进行事务管理,您应该真正将其限制为单个 TSQL 查询。开始/结束可能会有额外的往返,但这不太可能伤害你。
(现在)我很少手动编写基于 TSQL 的事务 - 也许如果我正在编写由服务器通过代理直接调用的东西(而不是从我自己的应用程序代码)。
更大的区别在于IDbTransaction
和TransactionScope
参见Transactions in .net更多,但简短的版本是 TransactionScope
稍慢(取决于场景),但可以跨越多个连接/数据库(或其他资源)。
关于c# - 代码与数据库中事务的效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/856342/