我使用sql事务作为APPLOCKS和其他并发机制的容器,因此我有时在不同的隔离级别创建事务,这些事务只读取数据而不写。我相信,在这种情况下,提交和回滚在逻辑上具有相同的结果。
出于性能原因,我想知道服务器执行哪个更便宜/更快?是否需要为提交用例优化的不可避免的簿记,以及即使没有写回也需要额外的回滚开销?无论是哪种情况,都会释放锁。
如果这不重要,那么我就不必在我的.NET TransactionScope代码中乱扔一个不必要的scope.Complete(),这可能会让我在查看其他(显然是只读的)操作的代码时犹豫不决。
谢谢!
发布于 2013-08-27 19:09:08
由于您没有写任何东西,所以您应该选择提交,因为它除了关闭事务外,还会释放您可能拥有的任何锁。虽然技术上回滚也会做同样的事情,但是提交总是比回滚快。
https://stackoverflow.com/questions/18473280
复制相似问题