web-dev-qa-db-ja.com

SQL Server 2012/2014のバッファープールで利用可能なメモリが不足しています

Windows 2012で実行されているSQL Server 2012 StandardとSQL Server 2014 Standardのデータベースインスタンスがたくさんあり、それぞれに異なるストレージとメモリが搭載されています。取得しています:

エラーコード:802;バッファープールで使用可能なメモリが不足しています。

大規模なSQL Serverインデックスを構築すると、3つのデータベースサーバーから、3〜4か月に1回断続的に発生します。同じインデックスは、SQL Serverのバージョンが同じで、メモリとCPUが1/3しかないサーバーでも正常に動作します。

SQL Server 2012標準サーバー

  1. 128 GBのメモリのうち、110 GBが割り当てられます。バージョン11.0.6-ヘビーインデックスを実行すると、次のエラーが報告されます。

    • エラーコード:802;バッファープールで使用可能なメモリが不足しています。

  2. 96GBのうち78GBがSQLに割り当てられたメモリ。バージョン11.0.6-ヘビーインデックスを実行すると、次のエラーが報告されます。

    • エラーコード:802;バッファープールで使用可能なメモリが不足しています。

  3. メモリは24GBのうち18GBを割り当てました。 VM。バージョン11.0.5

    • インデックス作成エラーなし
  4. 32GBのうち24GBのメモリ。物理的。バージョン11.0.5

    • インデックス作成エラーなし

SQL Server 2014標準サーバー

  1. メモリ64GBの物理メモリのうち56GB。バージョン12.0.5-ヘビーインデックスを実行すると、次のエラーが報告されます。

    • エラーコード:802;バッファープールで使用可能なメモリが不足しています。

  2. メモリ18GBアウト24GB-VM。バージョン12.0.5。

    • インデックス作成エラーなし

SQL 2012 Standardで発生するエラーは、そのエディションのみ 64GBのメモリをサポート であるため、あまり謎はないと思います。最大サーバーメモリを64GBに設定すると、SQL 2012インスタンスではこのエラーが表示されなくなります

SQL 2014 Standard Editionに関しては、サーバーの最大メモリ制限 128GBに増加 なので、コメントにSean Gallardyの質問をエコーし​​、その上で他に何を実行しているかを尋ねますVMまたは、VMホストを誤ってプロビジョニングした場合は?

2
John Eisbrener