Příznaky
Předpokládejme, že máte skript, který používá upozornění na události pro AUDIT_LOGIN a AUDIT_LOGIN_FAILED události v Microsoft SQL Server 2016 a 2017. Po spuštění skriptu si všimnete, že velikost databáze TempDB rychle roste.
Pomocí následujícího dotazu můžete zkontrolovat, jestli je místo přidělené interním objektům databáze TempDB správně uvolněné.
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
Příčina
K tomuto problému dochází kvůli regresi v kumulativní aktualizaci 6 pro SQL Server 2016 Service Pack 1.
Řešení
Tento problém je opravený v následujících kumulativních aktualizacích pro SQL Server:
Kumulativní aktualizace 10 pro SQL Server 2017
Kumulativní aktualizace 2 pro SQL Server 2016 SP2
Kumulativní aktualizace 10 pro SQL Server 2016 SP1
Informace o kumulativních aktualizacích pro SQL Server:
Každá nová kumulativní aktualizace pro SQL Server obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí kumulativní aktualizace. Podívejte se na nejnovější kumulativní aktualizace pro SQL Server:
Nejnovější kumulativní aktualizace pro SQL Server 2017
Nejnovější kumulativní aktualizace pro SQL Server 2016
Stav
Společnost Microsoft potvrdila, že se jedná o problém produktů Microsoft, které jsou uvedeny v sekci Platí pro.
Reference
Podívejte se na informace o terminologii, kterou společnost Microsoft používá k popisování aktualizací softwaru.