Queries Waiting for memory grants give me evidence to investigate. A customer CTO requested that evidence before approving more RAM.

SELECT session_id, request_id, requested_memory_kb, granted_memory_kb,
required_memory_kb, wait_time_ms, resource_semaphore_id
FROM sys.dm_exec_query_memory_grants
WHERE grant_time IS NULL
ORDER BY wait_time_ms DESC;

The query lists currently pending execution-memory grants when permissions allow. Grants support operators such as sorts and hashes. They don’t represent the entire engine memory footprint. An empty snapshot does not exclude intermittent pressure.
We first tuned queries, views and indexes and reviewed the memory budget. Remaining evidence supported an increase in this case. The measured workload improved afterward. That outcome does not establish a universal frequency or guarantee for hardware upgrades.
Check estimates, grants, concurrency, max server memory, Resource Governor limits and relevant waits. Compare the same workload before and after a targeted correction. The linked diagnostics support that investigation.
Related reading
- Comprehensive Database Performance Health Check
- SQL SERVER – List Number Queries Waiting for Memory Grant Pending
A pending grant is not automatic proof of inadequate RAM, it is pressure to investigate in workload context.
Published by Pinal Dave on SQLAuthority. More of my work at pinaldave.com.
Discover more from SQL Authority with Pinal Dave
Subscribe to get the latest posts sent to your email.





1 Comment. Leave new
I’m curious why the requested and ideal memory values dropped significantly after increasing memory? Were those two screen shots taken on the same server?
Can you give us an idea of what the before and after memory amounts were?