Графік тупикового блоку SQL Server - блокування таблиці, сторінки чи рядків?


10

Чи є можливість розшифрувати, якщо блокування в графіку тупикового кута - рівень таблиці, сторінки або рядка? У мене є вся інформація, яка мені потрібна в графіку, включаючи рівень ізоляції (2), але я теж дуже хочу це знати.

Дякуємо всім, хто може допомогти!

Відповіді:


13

У графіку глухого кута XML ви побачите щось на кшталт:

<deadlock-list>
  <deadlock victim="...">
    <process-list>
      <process id="..." ... waitresource="X:..."
...

XЦікава біт, можливі значення , які ви зацікавлені в тому, є:

  • RID для ідентифікатора рядка (блокування рівня рядка)
  • PAG для блокування рівня сторінки
  • OBJECT(яка може бути додатково кваліфікована із TABзазначенням блокування таблиці)

Є ще кілька видів, перелічених у документації .


Дякую, це корисно. Хоча в моєму графіку є 2 процеси, які, як видається, використовують різні сторінки: waitresource = "RID: 21: 1: 2588: 0" waitresource = "RID: 21: 1: 2699: 1" Отже, якщо вони використовують різні сторінки , то вони не можуть суперечити один і той же рядок, правда? Оскільки я використовую підказку WITH (ROWLOCK) на цей запит.
тузо

2
Якщо процес 1 містить 2699 і хоче 2588, а процес 2 тримає 2588 і хоче 2699, це буде тупиком. Пам'ятайте, що тупик передбачає кругову залежність.
Гай
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.