Проблемы
Предположим, что у вас есть сценарий, использующий уведомления о событиях для AUDIT_LOGIN и AUDIT_LOGIN_FAILED событий в Microsoft SQL Server 2016 и 2017. Когда вы запускаете сценарий, вы заметите, что база данных 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
Причина
Эта проблема возникает из-за регрессии накопительного обновления 6 для SQL server 2016 с пакетом обновления 1 (SP1).
Решение
Эта проблема исправлена в перечисленных ниже накопительных обновлениях для SQL Server.
Накопительное обновление 10 для SQL Server 2017
Накопительное обновление 2 для SQL Server 2016 SP2
Накопительное обновление 10 для SQL Server 2016 с пакетом обновления 1 (SP1)
Все новые накопительные обновления для SQL Server содержат все исправления и все исправления для системы безопасности, которые были включены в предыдущий накопительный пакет обновления. Ознакомьтесь с самыми последними накопительными обновлениями для SQL Server.
Статус
Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".
Ссылки
Ознакомьтесь с терминологией, которую корпорация Майкрософт использует для описания обновлений программного обеспечения.