tsql - Why SELECT can have SIU lock (SQL Server 2012)? -


today troubleshooting deadlock case , discovered quite strange case (at least seemed strange me). had 2 concurrent statements (update , select) , led deadlock scenario. no question there. below deadlock graph depicts case:

deadlock graph

what bothers me type of lock select holds. why siu (share intern update), not s (shared) or is (intent shared) lock?

i found post on msdn forum, explains quite similar case:

profiler shows current cumulative lock sessions. after exported deadlock event xdl-file , opened in text editor found process selects data has s lock , process updates data has iu lock (and wants ix lock). , resource siu-locked (s+iu).

for me sounds (and doesn't make sense):

select has siu lock, because other session has intent update

can anybody, please, explain me why select holds siu lock?

update: select statement autogenerated ef 6.1.2; update statement stored procedure.

i think turn out there dml executing under same transaction. know stated not case don't see how selects can take write locks.

attach profiler , capture statements , transaction operations (the tm events). maybe you'll find more going on in same session , transaction expect.

submitting guess answers because seems quite solution.


Comments

Popular posts from this blog

qt - Using float or double for own QML classes -

Create Outlook appointment via C# .Net -

ios - Swift Array Resetting Itself -