Ознаки
Припустімо, що у вас є сценарій, у якому використовуються сповіщення про подію для 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 Service Pack 1.
Спосіб вирішення
Ця проблема усунена в таких сукупних оновлень для SQL Server:
Сукупне оновлення 10 для SQL Server 2017
Кожне нове Сукупне оновлення для SQL Server містить усі поточні виправлення та всі виправлення системи безпеки, які були включені до попереднього сукупного оновлення. Ознайомтеся з найновішими сукупними оновленнями для сервера SQL Server:
Стан
Корпорація Майкрософт підтвердила, що це проблема в продуктах Microsoft, перелічених у розділі "застосовується до".
Посилання
Відомості про термінологію, яку корпорація Майкрософт використовує для опису оновлень програмного забезпечення.