Triệu chứng
Giả định rằng bạn sử dụng Microsoft SQL Server 2016 và 2017. Nếu bạn bật sự kiện xml_deadlock_report để thu thập dữ liệu cho deadlocks, nhiều sự kiện xml_deadlock_report được báo cáo cho một người trong bế tắc kết hợp truy vấn duy nhất.
Cách giải quyết
Là một giải pháp thay thế cho sự cố này, bạn có thể thu thập error_reported XEvent bằng cách sử dụng bộ lọc error_number = 1205 thay vì xml_deadlock_report, như được thấy trong ví dụ sau đây:
TẠO phiên sự kiện [Deadlock_Collection] trên máy chủ
Thêm sqlserver.error_reported sự kiện (
Trong đó ([error_number] = (1211)))
Thêm TARGET package0. histogram (SET filtering_event_name = N ' sqlserver.lock_acquired ', source = N ' sqlserver.query_hash ')
VỚI (MAX_MEMORY = 4096 KB, EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS, MAX_DISPATCH_LATENCY = 30 GIÂY, MAX_EVENT_SIZE = 0 KB, MEMORY_PARTITION_MODE = NONE, TRACK_CAUSALITY = BẬT, STARTUP_STATE = OFF)
PHẢI
Giải pháp
Sự cố này đã được khắc phục trong các bản Cập Nhật tích lũy sau đây cho SQL Server:
Bản Cập Nhật tích lũy 10 cho SQL Server 2017
Bản Cập Nhật tích lũy 2 cho SQL Server 2016 SP2
YùVới bản sửa lỗi này, không có sự kiện xml_deadlock_report được báo cáo cho người dùng nội bộ truy vấn được bế tắc khi có thể được giải quyết mà không giết chết một chuỗi.
Mỗi bản Cập Nhật tích lũy mới cho SQL Server chứa tất cả các hotfix và tất cả các bản sửa lỗi bảo mật đã được đưa vào bản Cập Nhật tích lũy trước đó. Kiểm tra các bản Cập Nhật tích lũy mới nhất cho SQL Server:
Trạng thái
Microsoft đã xác nhận đây là sự cố trong các sản phẩm của Microsoft được liệt kê trong phần "Áp dụng cho".
Tham khảo
Tìm hiểu về thuật ngữmà Microsoft sử dụng để mô tả các bản cập nhật phần mềm.