加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

Sql Transaction – SQL Server还是C#?

发布时间:2020-12-12 07:04:07 所属栏目:MsSql教程 来源:网络整理
导读:我是否正确地说从性能角度来看,sql事务在存储过程中比代码好得多? 目前我在存储过程中使用了大部分事务,但有时我会使用代码来处理更复杂的例程 – 显然我尽可能地保持最小化. 只是有一个复杂的例程需要太多的“变量”,在c#中编写sql事务要比使用SQL Server容
我是否正确地说从性能角度来看,sql事务在存储过程中比代码好得多?

目前我在存储过程中使用了大部分事务,但有时我会使用代码来处理更复杂的例程 – 显然我尽可能地保持最小化.

只是有一个复杂的例程需要太多的“变量”,在c#中编写sql事务要比使用SQL Server容易得多.这是代码可读性和性能之间的界限.

有任何想法吗?

解决方法

表现各不相同; SqlTransaction的开销可能比TransactionScope少,特别是如果TransactionScope决定它需要与DTC纠缠在一起.但我不希望SqlTransaction和BEGIN TRAN之间存在巨大差异,除了额外的往返之外.但是,TransactionScope仍然很快,并且是在事务中封装多个操作的最方便选项,因为每次都不需要手动将环境事务与命令相关联.

也许更好(更重要)的因素是isolation-level.ExchangeScope默认为最高(可序列化).较低的隔离级别允许更多的阻塞(但存在不可重复读取的风险等). IIRC TSQL事务默认为较低级别之一.但是可以针对所有3个选项调整隔离级别.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读