Sql-server – SQL Server Deadlock Graph – Table, Page or Row Lock

deadlocksql server

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!

Best Answer

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 lock
  • OBJECT (which may be further qualified TAB indicating a table lock)

There are a few others kinds listed in the documentation also.