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

8645: A time out occurred while waiting for memory resources to execute the query(クエリ実行用のメモリリソース待機中にタイムアウト発生)

SQL Server

意味

クエリの実行に必要なメモリ許可 (memory grant) を待ってリソースセマフォで待機中にタイムアウトした。メモリ逼迫により許可を割り当てられなかったため、操作は取り消された。

原因

同時実行されるメモリ集約型のクエリ (大規模なソート、ハッシュ結合、ハッシュ集約) がクエリメモリプール全体を消費し、新しいクエリがセマフォで待機してタイムアウトした。過大なメモリ許可の見積り (古い統計、不適切な実行計画) またはサーバーメモリの不足が根本原因。

対処方法

sys.dm_exec_query_memory_grants とリソースセマフォの DMV で、メモリを待機中または保持中のクエリを特定する。統計を更新し、メモリ許可の膨張を引き起こす実行計画を修正する (適切なインデックス、より正確な見積り)。メモリ集約型のクエリの同時実行数を減らし、必要に応じて Resource Governor でメモリ許可に上限を設ける。サーバーのメモリ構成 (max server memory) を見直す。

DBAtlas で開く →

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