現象
Windows Server 2012または以前のバージョンの Windows オペレーティング システムを実行しているコンピューターに、64 ビット バージョンの Microsoft SQL Server 2014、2016、または 2017 をインストールすることを想定しています。 SQL Serverがすべてのユーザー モード仮想アドレス空間を使用すると、SQL Server エラー ログにメモリ不足エラー メッセージが表示されることがあります。 さらに、クエリの実行が完了するまでに長い時間がかかり、SOS_MEMORY_TOPLEVELBLOCKALLOCATOR待機が発生します。
次の情報ポイントを調べると、使用可能な仮想アドレス空間が非常に少ないことがわかります。
- DBCC MEMORYSTATUS - プロセス/システム数セクション - 使用可能な仮想メモリ
- 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 - メモリ マネージャー セクション - VM 予約済み
これらの値は通常、"最大サーバー メモリ" 値の倍数で最大約 8 TB まで増加します。
メモ 関連する問題については、 KB 3074434でも説明されています。
解決策
この更新プログラムは、SQL Serverの次の累積的な更新プログラムに含まれています。
SQL Server 2017 の累積的な更新プログラム 4
SQL Server 2016 SP1 の累積的な更新プログラム 8
SQL Server 2014 Service Pack 2 の累積的な更新プログラム 10
SQL Serverの累積的な更新プログラムについて:
SQL Serverの各新しい累積的な更新プログラムには、すべての修正プログラムと、以前の累積的な更新プログラムに含まれていたすべてのセキュリティ修正プログラムが含まれています。 SQL Serverの最新の累積的な更新プログラムを確認してください。
SQL Server 2017 の最新の累積的な更新プログラム
SQL Server 2016 の最新の累積的な更新プログラム
SQL Server 2014 の最新の累積的な更新プログラム
メモ この更新プログラムを適用した後、この変更を有効にするには、トレース フラグ 8075 をスタートアップ パラメーターとして追加する必要があります。
状態
Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。
参考資料
マイクロソフトでソフトウェア更新プログラムの説明に使用する用語集を参照してください。