Triệu chứng
Theo mặc định, các điểm kiểm tra gián tiếp được bật cho cơ sở dữ liệu tempdb trong Microsoft SQL Server 2016 và 2017. Trong điều kiện khối lượng công việc nặng, lỗi "Bộ lập lịch không sản lượng" có thể xảy ra và DMV sys.dm_os_spinlock_stats cho thấy sự cạnh nhau spinlock nâng cao đối với loại khóa quay DP_LIST khóa quay.
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".
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 SQL Server:
Giới thiệu về các bản cập nhật tích lũy SQL Server:
Mỗi bản cập nhật tích lũy mới dành cho SQL Server sẽ chứa tất cả các bản cập nhật nóng và tất cả các bản sửa lỗi bảo mật được bao gồm trong bản cập nhật tích lũy trước đó. Xem các bản cập nhật tích lũy mới nhất dành cho doanh SQL Server:
Cách giải quyết
Để khắc phục sự cố này, hãy tắt các điểm kiểm tra gián tiếp trên cơ sở dữ liệu tempdb bằng cách sử dụng một trong các câu lệnh Ngôn ngữ Định nghĩa Dữ liệu (DDL) sau đây.
Bạn nên thực hiện thao tác này như sau:
-
Trên cơ sở dữ liệu modeldb (điều này cũng thay đổi giá trị mặc định cho cơ sở dữ liệu mới), hãy chạy câu lệnh sau đây:
ALTER DATABASE [model] SET TARGET_RECOVERY_TIME = 0 MINUTES -
Hoặc, trực tiếp trên cơ sở dữ liệu tempdb mỗi khi mẫu khởi động bằng cách sử dụng Tác nhân SQL Server bằng cách sử dụng câu lệnh sau đây:
ALTER DATABASE [tempdb] SET TARGET_RECOVERY_TIME = 0 MINUTES -
Hoặc định kỳ phát hành các điểm kiểm tra thủ công đối với cơ sở dữ liệu tempdb bằng cách sử dụng câu lệnh sau đây:
use tempdb
go checkpoint
go
Ngoài ra, TF 3468 có thể được sử dụng để vô hiệu hóa điểm kiểm tra gián tiếp trên tempdb.
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. Xem các bài viết sau để biết thêm thông tin: