使用 MSSQL 的 WP 站長朋友都會被 MSSQL 資料庫吃記憶體的能力佩服得五體投地, 一個小小的網站, 執行若干天之後,MSSQL 就會把站群伺服器上所有的記憶體都吃光, 此時你不得不重新啟動一下站群伺服器或 MSSQL 來釋放記憶體, 有人認為是 MSSQL 有記憶體洩露問題, 其實不然, 微軟給我們了明確說明:
在您啟動 SQL Server 之後,SQL Server 記憶體使用量將會持續穩定上升,即使當站群伺服器上活動很少時也不會下降。另外,工作管理員和效能監視器將顯示計算機上可用的實體記憶體穩定下降,直到可用記憶體降到 4 至 10 MB 為止。
僅僅出現這種狀態不表示記憶體洩漏。此行為是正常的,並且是 SQL Server 緩衝池的預期行為。
預設情況下,SQL Server 根據作業系統報告的實體記憶體載入動態增大和收縮其緩衝池(WordPress 加速快取)的大小。只要有足夠的記憶體可用於防止記憶體頁面交換(在 4 至 10 MB 之間),SQL Server 緩衝池就會繼續增大。像在與 SQL Server 分配記憶體位於相同計算機上的其他程式一樣,SQL Server 緩衝區管理器將在需要的時候釋放記憶體。 SQL Server 每秒可以釋放和獲取幾兆位元組的記憶體,從而使它可以快速適應記憶體分配變化。
更多資訊
您可以透過站群伺服器記憶體最小值和站群伺服器記憶體最大值配置選項設定 SQL Server 資料庫引擎使用的記憶體(緩衝池)量的上下限。在設定站群伺服器記憶體最小值和站群伺服器記憶體最大值選項之前,請查閱以下 Microsoft 知識庫文章中標題為” 記憶體” 一節中的參考資訊:
319942 HOW TO:Determine Proper SQL Server Configuration Settings(確定正確的 SQL Server 配置設定)
請注意,站群伺服器記憶體最大值選項只限制 SQL Server 緩衝池的大小。站群伺服器記憶體最大值選項不限制剩餘的未保留記憶體區域,SQL Server 準備將該區域分配給其他元件,例如擴充套件儲存過程、 COM 物件、以及非共享 DLL 、 EXE 和 MAPI 元件。由於前面的分配,SQL Server 專用位元組超過站群伺服器記憶體最大值配置是很正常的。有關此未保留記憶體區域中分配的其他資訊,請單擊下面的文章編號,以檢視 Microsoft 知識庫中相應的文章:
316749 PRB:在使用大量資料庫時可能沒有足夠的虛擬記憶體
參考
SQL Server 聯機圖書;主題:” 站群伺服器記憶體最小值和最大值的影響”;” 記憶體體系結構”;” 站群伺服器記憶體選項”;”SQL Server 記憶體池”
下面我們就來實戰如何限制 MSSQL 記憶體使用:
第一步: 開啟企業管理雙擊進入要修改的 MSSQL.

第二步: 在左側 MSSQL 上點選右鍵, 選擇屬性, 彈出 SQL Server 屬性 (配置) 對話方塊

第三步: 點選記憶體選項卡.

在這裡, 你會看到 MSSQL 預設設定為使用最大記憶體, 也就是你所有的記憶體, 根據你的需要, 設定它的最大值吧.
第五步: 設定完畢,關閉 MSSQL 服務再重啟,配置即可生效!