Art*_*dod 0 sql-server deadlock snapshot isolation-level
我正在调查一个死锁,并且在探查器的死锁xml文件中看到进程process5332cf8在快照隔离级别(isolationlevel="snapshot (5)")下运行事务。
但是不知何故,它在页面上保持了IX锁,并希望再获取一个。
这可能是什么原因(除了在发生冲突的中间阶段将隔离级别更改为非快照之外)?
我是否缺少有关Snapshot IL的信息?
PS:完整的xml:http : //ideone.com/yuU9td
写操作总是带锁。IX是写锁。至于其他进程(两个SELECT,即process6593498和process5cc1498),它们处于读取提交状态。
如果要避免快照隔离引起的争用,则必须首先将其用于读取事务。