我已阅读提交的快照隔离并允许隔离ON
我的数据库。我仍然收到死锁错误。我很确定我知道发生了什么...
- 第一个事务在其事务开始时获得一个序列号。
- 第二个在其事务开始时获得较晚的序列号,但在第一个事务已经获得它之后(第二个序列号比第一个更新)。
- 第二个事务首先进入更新语句。当它检查行版本控制时,它会看到两个事务之前的记录,因为第一个事务尚未到达更新。它发现该行的序列号处于已提交状态并继续前进。
- 第一个事务轮到它,就像第二个事务找到相同的提交序列号,因为它不会看到第二个事务,因为它比它自己更新。当它尝试提交时,它发现另一个事务已经更新了尝试提交的记录,并且必须回滚。
这是我的问题:此回滚是否会在跟踪中显示为死锁?