sp_Blitz (20160715) 在很少使用的 2012 SP2 CU12 测试实例(开发人员版)上报告“可用内存过多”,该实例仅包含由 SSRS 创建和使用的数据库。详情如下:
SQL Server 的缓冲池中有 0GB 的可用内存,即 0GB。您可能认为大量可用内存会很好,但请查看 URL 以获取更多信息。
我修改了查询以返回原始值并得到 Free = 587,896 和 Total = 1,052,256。我改变的查询:
SELECT Free = cFree.cntr_value, Total = cTotal.cntr_value
FROM sys.dm_os_performance_counters cFree
INNER JOIN sys.dm_os_performance_counters cTotal ON cTotal.object_name LIKE N'%Memory Manager%'
AND cTotal.counter_name = N'Total Server Memory (KB) '
WHERE cFree.object_name LIKE N'%Memory Manager%'
AND cFree.counter_name = N'Free Memory (KB) '
AND CAST(cTotal.cntr_value AS BIGINT) * .3 <= CAST(cFree.cntr_value AS BIGINT)
AND CAST(SERVERPROPERTY('edition') AS VARCHAR(100)) NOT LIKE '%Standard%'
dbo.sp_BlitzCache (@BringThePain = 1) 显示 316 行,显然都是内置的 SSRS 管理语句。是否更有可能:
- 我遇到了https://www.brentozar.com/blitz/too-much-free-memory/中描述的问题 ,或者
- sp_Blitz 查询的 WHERE 子句需要调整以避免在这种情况下出现误报
我在Github上的SQL Server First Responder Kit 存储库上记录了一个错误。您可以检查它的状态,也可以根据需要添加它。