2013-02-25 58 views
2

我一直与我的运行MS SQL Server 2012的64位标准的网络服务器设备的某些系列的问题。我不断收到此错误:SQL Server 2012的错误:FAIL_PAGE_ALLOCATION 1

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内存,2个英特尔至强双核

大约每5天,SQL Server崩溃由于这种内存错误。我已经尝试升级到累计更新5,这应该包括此内存错误的修补程序。我试过将最大内存设置为2600mb(因为这台机器也是我的网络服务器)。我无法弄清楚是什么导致了这个错误,或者为什么如果错误发生时MS SQL不会自动重置 - 它会直接继续尝试运行查询,直到服务器的内存最大化。任何想法都会很棒。

+0

是不是相同的查询(可能使用不同的参数)导致错误? – automatic 2013-02-25 17:27:43

+0

我是比较新的SQL Server时,它会自动记录查询,或者是有一个记录这些,所以我可以寻找那些可能会导致这种查询方式? – t3hn4t3 2013-02-25 17:36:16

+0

sql从哪里来?你使用实体框架,Nhibernate,Llblgen,自己写吗? 看看如何使用Sql Profiler来控制Sql上的活动。我猜测,一个写得不好的查询或索引不佳的数据库正在引发这个问题。 – automatic 2013-02-26 12:32:16

回答

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,该内存职员绑了太多。 你应该检查你的客户端。 SQL Server无法解决此类错误。你应该改善你的应用程序的行为。

试试SQLDIAG,路径:C:\ Program Files文件\ Microsoft SQL Server的\ 110个\工具\ BINN \ Sqldiag.exe