Triệu chứng
Giả định rằng bạn có một tập lệnh sử dụng thông báo sự kiện cho các sự kiện AUDIT_LOGIN và AUDIT_LOGIN_FAILED trong Microsoft SQL Server 2016 và 2017. Khi bạn chạy script, bạn sẽ thấy rằng TempDB phát triển nhanh về kích cỡ.
Bạn có thể sử dụng truy vấn bên dưới để kiểm tra xem không gian được phân bổ cho đối tượng nội bộ TempDB là đúng vị trí.
SELECT *
FROM (
SELECT TS.internal_objects_alloc_page_count , TS.internal_objects_dealloc_page_count, [Net Allocation MB] = CAST((TS.internal_objects_alloc_page_count - TS.internal_objects_dealloc_page_count) AS DECIMAL(15, 2)) / 128
, TS.session_id
, ER.command
FROM sys.dm_db_task_space_usage TS
INNER JOIN sys.dm_exec_requests ER ON ER.request_id = TS.request_id AND ER.session_id = TS.session_id
where TS.session_id < 50
) internal
where [Net Allocation MB] != 0
Nguyên nhân
Sự cố này xảy ra do một hồi quy trong phần Cập Nhật tích lũy 6 cho SQL Server 2016 Service Pack 1.
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
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.