Problembeschreibung
Angenommen, Sie verfügen über ein Skript, das Ereignisbenachrichtigungen für AUDIT_LOGIN -und AUDIT_LOGIN_FAILED Ereignisse in Microsoft SQL Server 2016 und 2017 verwendet. Wenn Sie das Skript ausführen, werden Sie feststellen, dass die tempdb-Datei schnell vergrößert wird.
Mit der folgenden Abfrage können Sie überprüfen, ob dem tempdb-internen Objekt zugewiesene Speicherplatz ordnungsgemäß freigegeben wurde.
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
Ursache
Dieses Problem tritt aufgrund einer Regression im kumulativen Update 6 für SQL Server 2016 Service Pack 1auf.
Fehlerbehebung
Dieses Problem wurde in den folgenden kumulativen Updates für SQL Server behoben:
Kumulatives Update 10 für SQL Server 2017
Jedes neue kumulative Update für SQL Server enthält alle Hotfixes und alle Sicherheitsupdates, die im vorherigen kumulativen Update enthalten waren. Schauen Sie sich die neuesten kumulativen Updates für SQL Server an:
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.
Informationsquellen
Erfahren Sie mehr über die Terminologie, mit der Microsoft Softwareupdates beschreibt.