November 8, 2017 at 9:36 am
Good Morning Experts,
Does Resource Monitor report SQL Server memory usage correctly? If no, then which one reports sql server memory usage correctly.
November 9, 2017 at 6:49 am
coolchaitu - Wednesday, November 8, 2017 9:36 AMGood Morning Experts,
Does Resource Monitor report SQL Server memory usage correctly? If no, then which one reports sql server memory usage correctly.
DECLARE @total_buffer INT;
SELECT @total_buffer = cntr_value FROM sys.dm_os_performance_counters
WHERE RTRIM([object_name]) LIKE '%Buffer Manager' AND counter_name = 'Total Pages';
;WITH src AS( SELECT database_id, db_buffer_pages = COUNT_BIG(*)
FROM sys.dm_os_buffer_descriptors --WHERE database_id BETWEEN 5 AND 32766
GROUP BY database_id)SELECT [db_name] = CASE [database_id] WHEN 32767 THEN 'Resource DB' ELSE DB_NAME([database_id]) END, db_buffer_pages, db_buffer_MB = db_buffer_pages / 128, db_buffer_percent = CONVERT(DECIMAL(6,3), db_buffer_pages * 100.0 / @total_buffer)
FROM src
ORDER BY db_buffer_MB DESC;
November 9, 2017 at 7:50 am
Buffer pool usage would not be more accurate as it is only part of SQL Server's memory usage.
There are numerous things consuming memory outside of the buffer pool. Some of this is explained in the documentation for memory server configurations - which also explains why it is not unusual to see SQL Server consuming more than the max memory settings:
Server Memory Server Configuration Options
max server memory controls the SQL Server memory allocation, including the buffer pool, compile memory, all caches, qe memory grants, lock manager memory, and clr memory (essentially any memory clerk found in sys.dm_os_memory_clerks). Memory for thread stacks, memory heaps, linked server providers other than SQL Server, and any memory allocated by a non SQL Server DLL are not controlled by max server memory.
Sue
Viewing 3 posts - 1 through 2 (of 2 total)
You must be logged in to reply to this topic. Login to reply