現象
Windows Server 2012 または以前のバージョンの Windows オペレーティングシステムを実行しているコンピューターに、64ビット版の Microsoft SQL Server 2014、2016、または2017をインストールすることを前提としています。 SQL Server がすべてのユーザーモードの仮想アドレス空間を使用している場合、SQL Server エラーログにメモリ不足のエラーメッセージが表示されることがあります。 さらに、クエリの実行が完了するまでに時間がかかるため、SOS_MEMORY_TOPLEVELBLOCKALLOCATOR の待機が発生します。
次の情報ポイントを確認すると、使用可能な仮想アドレス空間が非常に少なくなっていることがわかります。
-
DBCC MEMORYSTATUS-Process/System 計数セクション-利用可能な仮想メモリ
-
DMV: sys.dm_os_process_memory 列 virtual_address_space_available_kb
これらの値は、x64 プロセスで8テラバイト (TB) の範囲で開始され、数ギガバイト (GB) まで上昇し続けることができます。
使用可能な仮想アドレス空間が非常に少なくなっている段階では、メモリ割り当てを実行しようとするクエリでも、CMEMTHREAD の待機の種類が発生する可能性があります。
次のデータポイントは、時間の経過と共に増え続けます。
-
DMV: sys.dm_os_process_memory と sys.dm_os_memory_nodes 列の virtual_address_space_reserved_kb
-
DBCC MEMORYSTATUS-Memory Manager セクション-VM 予約済み
これらの値は通常、最大 8 TB の "max server memory" 値の倍数で増加します。
注関連の問題については、 KB 3074434にも記載されています。
解決方法
この更新プログラムは、SQL Server の次の累積的な更新プログラムに含まれています。
SQL Server 用の新しい累積更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正が含まれています。 SQL Server の最新の累積的な更新プログラムを確認します。
SQL Server 2017 の最新の累積的な更新プログラム
注: この更新プログラムを適用した後、この変更を有効にするには、トレースフラグ8075をスタートアップパラメーターとして追加する必要があります。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
関連情報
ソフトウェアの更新を説明するために Microsoft が使用する 用語について説明します。