![为什么使用 TSQL 和 GUI 得到的内存数字不同?](https://linux22.com/image/730704/%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BD%BF%E7%94%A8%20TSQL%20%E5%92%8C%20GUI%20%E5%BE%97%E5%88%B0%E7%9A%84%E5%86%85%E5%AD%98%E6%95%B0%E5%AD%97%E4%B8%8D%E5%90%8C%EF%BC%9F.png)
我准备在服务器 RAM 升级后提高我们的max server memory
价值。我正在测试 SQL Server 上的命令,但我不知道为什么使用 T-SQL 和 GUI 看到的结果不同。我将测试服务器上的内存更改为 24GB,如下所示:
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'max server memory', 24576;
GO
RECONFIGURE;
GO
在 GUI 中我看到 24576。
但是使用下面的查询,我看到的是 22421。我做错了什么?
SELECT (physical_memory_in_use_kb/1024) AS Used_Memory_By_SqlServer_MB
FROM sys.dm_os_process_memory
答案1
您的查询返回的是 SQL 使用的内存,而不是它允许消耗的最大服务器内存。
如何使用 T-SQL 获取 SQL 实例的最小和最大内存分配?
这将向您展示如何通过查询获取该值。
SELECT name, value, value_in_use, [description]
FROM sys.configurations
WHERE name like '%server memory%'
ORDER BY name OPTION (RECOMPILE);