什么更有效 - 在.net代码中使用IDbTransaction或在数据库中处理它?为什么?
应该使用哪种方案?
答案 0 :(得分:3)
当谈到基于连接的事务(IDbTransaction
)时,整体性能应该非常相似 - 但是通过在.NET代码中处理它,您可以方便地在同一连接上跨越多个数据库操作。如果您正在进行事务管理内部 TSQL,您应该将其限制为单个TSQL查询。开始/结束可能会有额外的往返,但这不太可能伤害到你。
我手动编写基于TSQL的事务是非常罕见的(如今) - 如果我正在编写通过代理直接由服务器调用的内容(而不是来自我自己的应用程序代码)。
更大的差异在IDbTransaction
和TransactionScope
之间,请参阅Transactions in .net了解更多信息,但简短版本是TransactionScope
略慢(取决于具体情况),但可以跨越多个连接/数据库(或其他资源)。