2

我在运行 MS SQL Server 2012 64 位标准的网络服务器机器上遇到了一些系列问题。我不断收到此错误:

2013 年 2 月 23 日 21:49:17,spid54,未知,资源池“内部”中的系统内存不足,无法运行此查询。
2013 年 2 月 23 日 21:49:17,spid54,未知,错误:701 严重性:17 状态:130。

当我阅读 MS SQL 日志文件时,这个问题总是从这个条目开始:

2013 年 2 月 23 日 21:49:16,spid57,未知,分配页面失败:FAIL_PAGE_ALLOCATION 1

系统规格:Windows Server 2008 R2 x64,5GB RAM,2 x Intel Xeon Dual-Core

大约每 5 天,SQL Server 就会因此内存错误而崩溃。我已经尝试升级到 Cumulative Update 5,据说它包含一个针对此内存错误的修补程序。我尝试将最大内存设置为 2600mb(因为这台机器也是我的网络服务器)。我无法弄清楚是什么导致了这个错误,或者为什么如果发生错误,MS SQL 不会自行重置——它实际上会一直尝试运行查询,直到服务器的内存用完为止。任何想法都会很棒。

4

1 回答 1

0

当遇到错误 701 时,检查你的 SQL 日志(对象资源管理器 > 管理 > Sql server 日志),你应该会发现这些东西:

2014-01-14 14:19:42.25 spid97
CACHESTORE_SQLCP (Total)
VM Reserved = 0 KB
......
SinglePage Allocator = xxx KB
Multipage Allocator = 0 KB ......

在您粘贴的日志上方。701日志是在申请页面时产生的。如果xxx足够大,CACHESTORE_SQLCP,这个 Memory Clerk 占用太多了。你应该检查你的客户。SQL Server 无法解决此类错误。您应该改进应用程序的行为。

试试SqlDiag,路径:C:\Program Files\Microsoft SQL Server\110\Tools\Binn\Sqldiag.exe

于 2014-01-15T05:09:34.337 回答