我在 Windows Server 2012 上使用 SQL Server 2014 - 12.0.2269.0 (X64),但遇到了一些内存问题。当我运行一个执行相当“繁重”计算的存储过程时,我在大约 10 分钟后收到一个错误:
资源池“默认”中的系统内存不足,无法运行此查询。
我的 SQL Server 有多个数据库(比如 15 个,但它们并不总是同时使用)。我查看了 SQL Server 日志文件(在我得到错误之后),我看到了很多这样的行:
2015-12-17 12:00:37.57 spid19s 由于资源池“default”内存不足,不允许为数据库“Database_Name”分配页面。有关详细信息,请参阅“ http://go.microsoft.com/fwlink/?LinkId=330673 ”。
在日志中生成一个报告,其中包含每个组件使用的内存(我认为)。如果我正确解释了报告,我们可以看到MEMORYCLERK_SQLBUFFERPOOL
. 您可以在此处找到该报告:http : //pastebin.com/kgmk9dPH
我还生成了一个带有图表的报告,该图表显示了相同的“结论”:
这可能是另一个有用的报告:
请注意,我还在日志中看到了此错误:
2015-12-17 12:04:52.37 spid70 由于数据库内存压力导致页面分配失败:FAIL_PAGE_ALLOCATION 8
以下是有关服务器内存的一些信息:
服务器上的总内存:16 Gb
分配给 SQL 服务器的内存:12288 Mb
使用中的物理内存(来自sys.dm_os_process_memory
):9287 Mb
如果它可以提供帮助,则该服务器不会托管任何 SharePoint 数据库。