徵狀
假設您有一個腳本,該腳本在 Microsoft SQL Server 2016 和2017中使用 AUDIT_LOGIN 和 AUDIT_LOGIN_FAILED 事件的事件通知。 當您執行腳本時,您會注意到 TempDB 會快速增加大小。
您可以使用下列查詢來檢查指派給 TempDB 內建物件的空間是否已正確釋放。
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
原因
之所以會發生這個問題,是因為 SQL Server 2016 Service Pack 1 的累積更新 6有退化的情況。
解決方案
此問題已在 SQL Server 的下列累積更新中修正:
每個新的 SQL Server 累計更新都包含所有的修正程式,以及前一個累積更新中所包含的所有安全性修正程式。 查看 SQL Server 的最新累計更新:
狀態
Microsoft 已確認<適用於>一節中所列的 Microsoft 產品確實有上述問題。
參考
瞭解 Microsoft 用於描述軟體更新的 詞彙。