Příznaky
Předpokládejme, že máte skript, který používá oznamování událostí pro AUDIT_LOGIN a události AUDIT_LOGIN_FAILED v Microsoft SQL serveru 2016 a 2017. Při spuštění skriptu zjistíte, že databáze TempDB se rychle zvětší.
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ě navrácené.
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 systému SQL Server:
Kumulativní aktualizace 10 pro SQL Server 2017
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 SQL serveru:
Stav
Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.
Odkazy
Informace o terminologiipoužívané společností Microsoft k popisu aktualizací softwaru.