我使用 sql 事务作为 APPLOCKS 和其他并发机制的容器,因此我有时会在各种隔离级别创建事务,这些事务只读取数据而不写入。我相信在这些情况下,从逻辑上讲,COMMIT 和 ROLLBACK 具有相同的结果。
出于性能原因,我想知道服务器执行哪个更便宜/更快?即使没有写入,是否需要针对 COMMIT 情况优化的不可避免的簿记和 ROLLBACK 的额外开销?无论哪种情况,锁都会被释放。
如果没关系,那么我不必在我的 .NET TransactionScope 代码中乱扔不必要的scope.Complete()
东西,这可能会让我在查看其他明显只读操作的代码时犹豫不决。
谢谢!