症状

假设你有一个脚本,该脚本在 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?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?

Thank you for your feedback!

×