我正在调查死锁,我在分析器的死锁xml文件中看到进程 process5332cf8 在快照隔离级别(isolationlevel="snapshot (5)"
)下运行事务。
但不知何故,它会在页面上锁定 IX 并想要另外一个。
这可能是什么原因(除了隔离级别在不太可能发生的事件中被更改为非快照)?
我是否遗漏了有关Snapshot IL的内容?
PS:完整的xml:http://ideone.com/yuU9td
答案 0 :(得分:4)
写入始终采取锁定。 IX是写锁。至于其他进程(两个SELECT,进程process6593498和process5cc1498),它们处于read committed状态。
如果您想避免与快照隔离争用,首先必须将它用于读取事务。