문제

I'm investigating a deadlock and I see in deadlock xml file from profiler that process process5332cf8 runs transaction under Snapshot isolation level (isolationlevel="snapshot (5)").

But somehow it holds IX lock on a page and wants to take another one.

What can be the reason for this (except that isolation level was changed to non-snapshot in the middle of thansaction which is not likely to happen ) ?

Am I missing something about Snapshot IL ?

PS: the full xml: http://ideone.com/yuU9td

도움이 되었습니까?

해결책

Writes always take locks. IX is a write lock. As for the other processes (the two SELECTs, process process6593498 and process5cc1498) they are under read committed.

If you want to avoid contention with snapshot isolation your must use it for your read transactions first of all.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top