Biểu đồ khóa chết máy chủ SQL - Bảng, trang hoặc khóa hàng?


10

Có cách nào để giải mã nếu một khóa trong biểu đồ khóa chết là mức Bảng, Trang hoặc Hàng không? Tôi có tất cả thông tin tôi cần từ biểu đồ, bao gồm Cấp độ cô lập, (2) nhưng tôi cũng thực sự muốn biết điều này.

Cám ơn bất cứ ai có thể giúp đỡ!

Câu trả lời:


13

Trong biểu đồ bế tắc XML, bạn sẽ thấy một cái gì đó như:

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

Các Xlà bit thú vị, giá trị có thể bạn đang quan tâm là:

  • RID đối với id hàng (khóa cấp hàng)
  • PAG cho khóa cấp trang
  • OBJECT(có thể đủ điều kiện tiếp theo TABchỉ ra khóa bảng)

Có một vài loại khác được liệt kê trong tài liệu cũng.


Cảm ơn, điều đó hữu ích. Mặc dù trong biểu đồ của tôi, tôi có 2 quy trình, dường như đang sử dụng các trang khác nhau: Waitresource = "RID: 21: 1: 2588: 0" Waitresource = "RID: 21: 1: 2699: 1" Vì vậy, nếu họ đang sử dụng các trang khác nhau Sau đó, họ không thể xung đột trên cùng một hàng, đúng không? Bởi vì tôi đang sử dụng gợi ý VỚI (ROWLOCK) cho truy vấn này.
tuseau

2
Nếu quy trình 1 đang giữ 2699 và muốn 2588, và quy trình 2 đang giữ 2588 và muốn 2699, điều đó sẽ bế tắc. Hãy nhớ một bế tắc ngụ ý một phụ thuộc tròn.
Gaius
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.