8651: Could not perform the operation because the requested memory grant was not available
SQL ServerWhat does it mean?
The memory grant required by the query was not available and the operation could not be performed. Unlike 8645, this is not a wait but an outright failure to provide the large memory block requested; it usually indicates severe memory pressure.
Why does it happen?
The available query memory on the server cannot satisfy the grant requested by a single operator (e.g., a very large sort/hash). Excessively high memory estimates, a low max server memory, external memory pressure or a low Resource Governor limit, REQUEST_MAX_MEMORY_GRANT_PERCENT (workload group) or MAX_MEMORY_PERCENT (resource pool), can be the cause.
How to fix it
Optimize queries that inflate memory grants (update statistics, proper indexing, splitting the query). Monitor total and available memory; check the max server memory setting and memory pressure from external applications. If Resource Governor is in use, review the workload group's REQUEST_MAX_MEMORY_GRANT_PERCENT and the pool's MAX_MEMORY_PERCENT settings. Move memory-intensive batch jobs to off-peak hours.
More from this engine
- 7202Could not find server 'name' in sys.servers
- 40501The service is currently busy. Retry the request after 10 seconds
- 8645A time out occurred while waiting for memory resources to execute the query
- 5061ALTER DATABASE failed because a lock could not be placed on database
- 3702Cannot drop database because it is currently in use
- 15138The database principal owns a schema in the database, and cannot be dropped
- 1934INSERT/UPDATE failed because the following SET options have incorrect settings