Triệu chứng
Giả định rằng bạn có một nhóm luôn sẵn sàng (AG) trong SQL Server 2016 và 2017. Khi bạn xử lý truy vấn đọc trên bản sao phụ, hiệu suất có thể chậm hơn nhiều so với các bản sao chính do DIRTY_PAGE_TABLE_LOCK thường xuyên đợi.
Nguyên nhân
Sự cố này xảy ra do việc ganh đua giữa truy vấn đọc và chuỗi làm lại và vì bảng đã bị khóa.
Giải pháp
Bản sửa lỗi này được bao gồm trong những cập nhật sau đây cho SQL Server:
Cập Nhật tích lũy 8 cho SQL Server 2017
Cập Nhật tích lũy 1 cho SQL Server 2016 gói dịch vụ 2
Bản Cập Nhật tích lũy 9 cho SQL Server 2016 gói dịch vụ 1
Giới thiệu về SQL Server dựng
Mỗi bản dựng mới cho SQL Server chứa tất cả các hotfix và các bản sửa lỗi bảo mật vốn đã được xây dựng trước đó. Chúng tôi khuyên bạn nên cài đặt bản dựng mới nhất cho phiên bản SQL Server của bạn:
Cách giải quyết
Để làm việc xung quanh vấn đề này you có thể sử dụng một chuỗi làm lại đơn thay cho chuỗi làm lại song song bằng cách bật theo dõi cờ 3459.
Thông tin Bổ sung
Khi các truy vấn chỉ đọc đang chạy trên bản sao phụ có thể đọc được, các chủ đề truy vấn sẽ cố gắng áp dụng tính năng ghi nhật ký đang chờ làm lại và cần phải cộng tác với chủ đề công việc làm lại với DIRTY_PAGE_TABLE_LOCK , có thể được tạo ra thường xuyên và làm chậm cả hai và truy vấn hiệu suất nếu có đồng thời làm lại công việc. Vấn đề về hiệu năng được liên kết với DIRTY_PAGE_TABLE_LOCK chờ đợi được giải quyết trong bản phát hành Cập Nhật tích lũy cho SQL Server 2016 SP và SQL Server 2017 được đề cập trong bài viết này.
Để biết thêm thông tin, bạn có thể thấy blog sau đây trên trang tính sẵn sàng làm lại mẫu và hiệu suất của nhóm.
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ữ Microsoft sử dụng để mô tả các bản cập nhật phần mềm.