2010-12-15 82 views
0

我在我的在線服務器上使用SQL Server 2008企業版,主數據庫的表格期望每月超過200萬條記錄,因爲這些表增長SQL Server從安裝的4GB內存中花費很多,然後關閉服務器RAM。SQL Server和RAM

我已經將SQL Server內存限制爲2GB,但是當它使用這些內存時,它會停止運行並破壞連接並執行得太慢。

這是正常的嗎?查詢這些大型表後,我能做些什麼來從SQL Server中取回RAM?

回答

5

在運行SQL Server的專用Windows服務器上,通過某些計數器可以下載到5-15 MB的可用RAM。這是正常的。沒有內存泄漏。

如果你安裝了4GB內存,我會考慮在32位上使用/ 3GB開關,並讓SQL Server爲自己開發內存。對於64位,添加更多的RAM並再次讓SQL Server爲自己制定RAM。

隨着數據在內存中攪動,RAM會導致SQL服務器餓死。

如果您的SQL Server不在專用的盒子上,然後將它移動到一個。

什錦鏈接到其他SO問題:OneTwoThree

+0

謝謝,我使用64位Windows Server 2008時,我離開SQL服務器來管理內存管理一段時間後,在同一臺服務器上的託管網站運行緩慢的SQL服務器變得太慢,有時一些查詢無法執行我不知道爲什麼?當我看到它的內存變得很低!這是正常的 – Hadad 2010-12-15 14:56:19

+1

@Hadad,你不應該在與數據庫相同的服務器上託管Web應用程序。 – HLGEM 2010-12-15 15:09:31

+0

非常感謝我將sql服務器分離到另一臺機器上 – Hadad 2010-12-15 15:21:46

1

您需要讓Sql Server處理內存。它會嘗試並使用任何你給它的東西,因爲它加載到內存中與它的執行速度直接相關。不要擔心限制它。它將在系統需要時將內存回送給系統上的其他進程,並在這些進程完成時回收它。

3

在這裏看到:因爲它可以儘可能搶,這是更昂貴的從磁盤讀取比從RAM The SQL Server Memory Leak Confusion

基本上SQL Server將使用盡可能多的內存。要釋放內存,您可以重新啓動,但後來您的所有查詢都會很慢,因爲它會撞到磁盤

+0

+1的鏈接 - 謝謝! – 2011-11-08 12:42:42

1

您可能要想要 SQL Server要使用大量的RAM。它旨在使用盡可能多的內存,因爲您可以在內存中緩存結果和表,以便將來訪問速度更快(如您所述)。

如果你的SQL服務器內存不足,它會自動「老化」查詢和緩存,以便最舊的內存將被刪除。

Read here瞭解更多信息。