2012-09-20 55 views
1

我已經安裝在我的桌面計算機上(使用Windows 7)SQLServer 2008 R2 Express。 我只有一臺運行(./SQLEXPRESS)的本地服務器,但sqlserver進程正在使用所有可能的RAM。SQLServer使用太多的內存

隨着3GB內存的機器開始變慢,所以我限制了服務器中RAM的最大數量,現在,不斷的SQLServer會給出一些錯誤信息,表明內存不夠用。它使用1GB的RAM,只有一個LOCAL服務器,2個數據庫完全空着,1GB的RAM如何不夠?

當進程開始使用真正可以接受的內存量(大約80MB)時,它會不斷增加,直到達到定義的最大值並開始抱怨沒有足夠的可用內存。在這一點上,我必須重新啓動服務器才能再次使用它。

我看過一個修補程序來解決,我從SQLSERVER得到了錯誤之一:

There is insufficient system memory in resource pool 'internal' to run this query 

但它已經安裝在我的SQLSERVER。

爲什麼它使用這麼多的內存?

+1

請在此錯誤消息中顯示您正在執行該結果的查詢。同時發佈他們的實際執行計劃。 – usr

+0

我沒有查詢,本地數據庫僅用於Web應用程序的單元測試,因此查詢在許多層代碼下真正混淆。 但是,例如,如果我讓服務器運行一段時間(超過2小時),我只有在嘗試刷新我的服務器時出現問題SQLServer Management Studio – IPValverde

+0

我不認爲問題出在SQL Server上。 SQL Server不會在內部泄漏內存,至少不會經過良好測試的代碼路徑。沒有更多的信息,我不認爲這個問題是可以回答的。用SQL Profiler捕獲SQL查詢。 – usr

回答

0

我有這樣的問題。 您可以增加數據庫的緩存大小。 在MSSQL服務器屬性上選擇內存,有「最大服務器內存(以MB爲單位)」可以增加這個單元格。

或者與查詢同樣的事情:

EXEC sp_configure'Show高級選項,1; GO RECONFIGURE; GO EXEC sp_configure'max server memory(MB)',3500; GO RECONFIGURE; GO