使用 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 服務再重啓,配置即可生效!