Symptomy
Załóżmy, że masz skrypt, który używa powiadomień o zdarzeniach dla AUDIT_LOGIN i AUDIT_LOGIN_FAILED zdarzeń w programach Microsoft SQL Server 2016 i 2017. Po uruchomieniu skryptu możesz zauważyć, że baza danych TempDB powiększa się szybko o rozmiarze.
Możesz użyć poniższego zapytania, aby sprawdzić, czy miejsce przydzielone do obiektów wewnętrznych bazy danych TempDB jest poprawnie rozalokowane.
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
Przyczyna
Ten problem występuje z powodu regresji w zbiorczej aktualizacji 6 dla programu SQL Server 2016 z dodatkiem Service Pack 1.
Rozwiązanie
Ten problem został rozwiązany w następujących zbiorczych aktualizacjach programu SQL Server:
Zbiorcza aktualizacja 10 dla programu SQL Server 2017
Zbiorcza aktualizacja 2 dla programu SQL Server 2016 z dodatkiem SP2
Zbiorcza aktualizacja 10 dla programu SQL Server 2016 z dodatkiem SP1
Każda nowa Zbiorcza aktualizacja programu SQL Server zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej aktualizacji zbiorczej. Zapoznaj się z najnowszymi aktualizacjami zbiorczymi dla programu SQL Server:
Najnowsza Zbiorcza aktualizacja dla programu SQL Server 2017
Najnowsza Zbiorcza aktualizacja dla programu SQL Server 2016
Stan
Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji "dotyczy".
Informacje
Informacje o terminologiiużywanej przez firmę Microsoft do opisywania aktualizacji oprogramowania.