Какой хороший способ проверить, сколько (актуальной) памяти в настоящее время как используется SQL Server для себя?
Я прибегал к memory_utilization_ percent, но, похоже, это не изменилось после запуска следующего для освобождения памяти.
SELECT [Memory_usedby_Sqlserver_MB] = ( physical_memory_in_use_kb / 1024 ) ,
[Memory_utilization_percentage] = memory_utilization_percentage
FROM sys.dm_os_process_memory;
DBCC FREESYSTEMCACHE ('ALL')
DBCC FREESESSIONCACHE
DBCC FREEPROCCACHE
SELECT [Memory_usedby_Sqlserver_MB] = ( physical_memory_in_use_kb / 1024 ) ,
[Memory_utilization_percentage] = memory_utilization_percentage
FROM sys.dm_os_process_memory;
Решение - отказаться от максимальной памяти сервера для SQL Server и снова увеличить его, чтобы заставить SQL Server освободить неиспользуемую, но выделенную память. Однако проблема с этим подходом заключается в том, что мы не можем быть уверены в том, как значительно сократить максимальную память сервера, следовательно, рискует убить SQL Server. Вот почему важно понять, насколько SQL Server используется на самом деле, прежде чем уменьшать значение максимальной памяти сервера.