Máy chủ SQL - Khóa RangeX-X và RangeI-N


7

Tôi đã đi đến một điểm chết trong một phân tích bế tắc. Theo msd :

RangeX-X là phạm vi độc quyền, khóa tài nguyên độc quyền; được sử dụng khi cập nhật khóa trong phạm vi. RangeI-N là Chèn phạm vi, khóa tài nguyên null; được sử dụng để kiểm tra phạm vi trước khi chèn khóa mới vào chỉ mục.

Vì vậy, tôi hiểu rằng nếu tôi có Chỉ mục trên 2 cột chính - và tôi chèn một khóa mới, tôi sẽ có khóa RangeI-N nhưng nếu tôi cập nhật khóa hiện tại từ chỉ mục thì tôi sẽ có RangeX-X.

Nhưng câu hỏi của tôi ít nhiều phức tạp. Giả sử tôi có chỉ mục IX_keys_inculled trên cột A, B và bao gồm cột C.

Trong chế độ cách ly nối tiếp, tôi chèn một giá trị mới cho cột được bao gồm C. Sẽ có các khóa RangeI-N hoặc RangeX-X cho chỉ mục IX_keys_included? Trên thực tế, sẽ có bất kỳ khóa nào được đưa ra thực tế là tôi chèn một cột mới cho một cột được bao gồm trong chỉ mục?

Câu trả lời:


4

Tôi đã tự mình tìm ra điều này và tôi đã viết trên blog của mình. Đối với những người quan tâm đến giải pháp, hãy truy cập bài viết này: RangeS-S , RangeS-U , RangeX-X


Xin chào, trang web của bạn đạt "LRI: Phản hồi reCAPTCHA đó không chính xác." khi tôi cố gắng bình luận
zeroflaw

Đầu tiên, cảm ơn lời giải thích của bạn. Tuy nhiên tôi có một số câu hỏi: 1. Bạn đã đề cập khóa RangeX-X sẽ chỉ được lấy trên các "cột" đó, điều đó có nghĩa là, bất kỳ thao tác chèn / cập nhật / xóa nào khác liên quan đến cột đó, sẽ bị chặn? (gần giống với khóa bảng?) 2. Làm cách nào để thay đổi trạng thái từ 'WAIT' sang bế tắc? đó có phải là thời gian chờ không?
zeroflaw

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.