c# - 代码与数据库中事务的效率

标签 c# .net database

哪个更有效——在 .net 代码中使用 IDbTransaction 还是在数据库中处理它?为什么?

应该在哪些情况下使用它们?

最佳答案

当谈到基于连接的事务 (IDbTransaction) 时,整体性能应该非常相似 - 但通过在 .NET 代码中处理它,您可以方便地跨越多个数据库操作相同的连接。如果您在内部 TSQL 中进行事务管理,您应该真正将其限制为单个 TSQL 查询。开始/结束可能会有额外的往返,但这不太可能伤害你。

(现在)我很少手动编写基于 TSQL 的事务 - 也许如果我正在编写由服务器通过代理直接调用的东西(而不是从我自己的应用程序代码)。

更大的区别在于IDbTransactionTransactionScope 参见Transactions in .net更多,但简短的版本是 TransactionScope 稍慢(取决于场景),但可以跨越多个连接/数据库(或其他资源)。

关于c# - 代码与数据库中事务的效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/856342/

相关文章:

c# - MSBuildWorkspace.Create() - 支持的语言为零

.net - 十进制作为主键在 Dev (Win7/64bit) 中有效,但在生产中无效 (Win2008R2/64bit) 公共(public)语言运行时检测到无效程序

.net - .net 应用程序运行的进程是非托管的还是正常的 Windows 进程?

mongodb - 仅当所有字段都唯一时才将文档插入 MongoDB

c# - 在 Unity C# 中将 layerMasks 与 Physic2D.Linecast() 结合使用

c# - DOC 到 PDF 库(不一定免费)

mysql - MYSQL 接受用户输入? Shell 脚本/批处理文件

SQL 与 SQLite 打印消息命令

c# - 重构速度 : Convert To a Date

c# - 创建一个接受与返回类型不同的类型的属性