I am just starting to learn about memory usage on SQL Server. When using the query in the answer to the question SQL Server 2008 R2 "Ghost Memory"?, I discovered that a single database is taking up the lion's share of space in the buffer pool. Looking further, using sys.allocation_units
and sys.indexes
, I confirmed this is likely caused by the heavy use of indexes in the database. Most indexes are clustered.
Another database developer believes we are having memory issues on the server - that queries are starting to run long because there is no available memory.
My question here is - does the use of these indexes, and their existence in the buffer pool, take away memory available for other processes?
"Another database developer believes we are having memory issues on the server"
-- based on what? How much RAM does the server have, what are the the instance memory settings, and how much memory is being consumed by the procedure cache?