如果运行该服务的帐户具有“内存中的锁定页面”特权,则您将无法从任务管理器中获得真实的内存使用情况(编辑:根据Mark Rasmussen的评论/链接)。要确定正在使用多少内存,可以查看:
- SQLServer:内存管理器\总服务器内存性能计数器
- DMV
我不记得是否有DMV或两者的组合会给您总的内存分配,但是下面将显示它的大部分。
SELECT TOP(10) [type] AS [Memory Clerk Type], SUM(single_pages_kb) AS [SPA Mem, Kb]
FROM sys.dm_os_memory_clerks
GROUP BY [type]
ORDER BY SUM(single_pages_kb) DESC OPTION (RECOMPILE);
SELECT DB_NAME(database_id) AS [Database Name],
COUNT(*) * 8/1024.0 AS [Cached Size (MB)]
FROM sys.dm_os_buffer_descriptors
WHERE database_id > 4 -- system databases
AND database_id <> 32767 -- ResourceDB
GROUP BY DB_NAME(database_id)
ORDER BY [Cached Size (MB)] DESC OPTION (RECOMPILE);
第二个通常是最有趣的,按数据库分配缓冲池。这是使用狮子共享的地方,了解哪个数据库是最大的使用者可能很有用。