2013-02-25 81 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