SQL Server 死锁图 - 表、页或行锁?

tus*_*eau 10 sql-server deadlock

有没有办法破译死锁图中的锁是表级、页级还是行级?我从图中获得了我需要的所有信息,包括隔离级别 (2),但我也很想知道这一点。

感谢任何能提供帮助的人!

Gai*_*ius 14

在死锁图 XML 中,您将看到如下内容:

<deadlock-list>
  <deadlock victim="...">
    <process-list>
      <process id="..." ... waitresource="X:..."
...
Run Code Online (Sandbox Code Playgroud)

X是有趣的一点,您感兴趣的可能值是:

  • RID 对于行 id(行级锁定)
  • PAG 用于页面级锁
  • OBJECT(可以进一步限定TAB表示表锁)

文档中还列出了其他一些种类。

  • 如果进程 1 持有 2699 并且想要 2588,而进程 2 持有 2588 并且想要 2699,那将会死锁。请记住,死锁意味着循环依赖。 (2认同)