Is there any way to decipher if a lock in a deadlock graph is Table, Page or Row level? I have all the information I need from the graph, including the Isolation Level, (2) but I really want to know this, too.
Thanks to anyone who can help!
Is there any way to decipher if a lock in a deadlock graph is Table, Page or Row level? I have all the information I need from the graph, including the Isolation Level, (2) but I really want to know this, too.
Thanks to anyone who can help!
In the deadlock graph XML you will see something like:
<deadlock-list>
<deadlock victim="...">
<process-list>
<process id="..." ... waitresource="X:..."
...
The X is the interesting bit, possible values you are interested in are:
RID for row id (row level locking)PAG for page level lockOBJECT (which may be further qualified TAB indicating a table lock)There are a few others kinds listed in the documentation also.
waitresource="RID: 21:1:2588:0" waitresource="RID: 21:1:2699:1"
So if they are using different pages, then they can't be conflicting over the same row, correct? Because I'm using a WITH (ROWLOCK) hint on this query.
– tuseau Apr 06 '11 at 14:15