現象
Microsoft SQL Server 2016 および2017で AUDIT_LOGIN イベントと AUDIT_LOGIN_FAILED イベントに対してイベント通知を使用するスクリプトを作成していることを前提とします。 スクリプトを実行すると、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
原因
この問題は、 SQL Server 2016 Service Pack 1 の累積更新プログラム 6での回帰が原因で発生します。
解決方法
この問題は、SQL Server の次の累積的な更新プログラムで修正されています。
SQL Server 用の新しい累積更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正が含まれています。 SQL Server の最新の累積的な更新プログラムを確認します。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
関連情報
ソフトウェアの更新を説明するために Microsoft が使用する 用語について説明します。