Applies ToSQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Service Pack 1 SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Standard on Windows

徵狀

假設您有一個腳本,該腳本在 Microsoft SQL Server 2016 和2017中使用 AUDIT_LOGINAUDIT_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 2017 累計更新10

       SQL Server 2016 SP2 累積更新2

       SQL Server 2016 SP1 累計更新10

每個新的 SQL Server 累計更新都包含所有的修正程式,以及前一個累積更新中所包含的所有安全性修正程式。 查看 SQL Server 的最新累計更新:

SQL Server 2017 的最新累計更新

SQL Server 2016 的最新累計更新

狀態

Microsoft 已確認<適用於>一節中所列的 Microsoft 產品確實有上述問題。

參考

瞭解 Microsoft 用於描述軟體更新的 詞彙

Need more help?

Want more options?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。