KB4341398 - 修正:SQL Server 2016 和 2017 中,AUDIT_LOGIN和AUDIT_LOGIN_FAILED事件的事件通知將導致 TempDB 異常成長

套用到
SQL 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_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 2017 累積更新 10

SQL Server 2016 SP2 的累積更新 2

SQL Server 2016 SP1 的累積更新 10

關於 SQL Server 的累積更新:

SQL Server 的每個新累積更新都包含所有 Hotfix 和先前累積更新的所有安全性修正程式。 查看 SQL Server 的最新累積更新:

適用於 SQL Server 2017 的最新累積更新

適用於 SQL Server 2016 的最新累積更新

狀態

Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。

參考資料

了解 Microsoft 用來說明軟體更新的術語。