DBAtlas · データベース運用アトラス

8651: Could not perform the operation because the requested memory grant was not available(要求されたメモリ許可が利用できないため操作を実行できない)

SQL Server

意味

クエリに必要なメモリ許可が利用できず、操作を実行できなかった。8645 とは異なり、これは待機ではなく、要求された大きなメモリブロックを提供できないという即時の失敗であり、通常は深刻なメモリ逼迫を示す。

原因

サーバー上の利用可能なクエリメモリが、単一の演算子 (例: 非常に大きなソート/ハッシュ) が要求する許可を満たせない。過度に高いメモリ見積り、低い max server memory、外部からのメモリ逼迫、または Resource Governor の低い上限 (ワークロードグループの REQUEST_MAX_MEMORY_GRANT_PERCENT やリソースプールの MAX_MEMORY_PERCENT) が原因となる。

対処方法

メモリ許可を膨張させるクエリを最適化する (統計の更新、適切なインデックス作成、クエリの分割)。総メモリと利用可能メモリを監視し、max server memory の設定と外部アプリケーションによるメモリ逼迫を確認する。Resource Governor を使用している場合は、ワークロードグループの REQUEST_MAX_MEMORY_GRANT_PERCENT とプールの MAX_MEMORY_PERCENT の設定を見直す。メモリ集約型のバッチジョブはオフピーク時間帯に移す。

DBAtlas で開く →

同じデータベースの他の項目