首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

優化 SQL Server 記憶體管理:限制緩衝池佔用、設定 Min/Max Server Memory 實戰

     編輯:關於SqlServer

案例:升級硬體(512MB→1GB)與 OS (Win2000→Win2003) 後,SQL Server 記憶體佔用從 400MB 飆升至 900MB+,擠壓同機其他應用程式導致記憶體不足錯誤。

根因:緩衝池動態增長機制

  • 啟動後依作業系統回報可用實體記憶體動態調整緩衝池大小。
  • 只要可用記憶體維持 4~10MB 區間,緩衝池持續增長(避免 OS 頻繁換頁)。
  • 可用記憶體過低時才釋放記憶體回 OS。
此為預設預期行為,非 Bug。但共用伺服器環境下需人為限制。

解決方案:設定 Min/Max Server Memory

  1. 開啟 Enterprise Manager → 右鍵伺服器 → [Properties] → [Memory] 索引標籤。
  2. 兩種模式:
模式設定值適用場景
範圍模式Min ≠ Max(如 0 ~ 255 MB)多應用程式共用伺服器,保留彈性
固定模式Min = Max(如 255 MB)嚴格配額,等同勾選 "Use fixed memory size"
  1. 設定完成後重新啟動 SQL Server 服務使配置生效並穩定。

進階補充

  • SQL Server 2005+ 引入 Resource Governor 可更精細控制工作負載群組記憶體配額。
  • Lock Pages in Memory 權限配合 max server memory 可防止分頁至磁碟。
  • 監控指標:SQLServer:Buffer Manager\Total Pages、Target Pages、Database Pages。

總結

共用伺服器環境必須設定 max server memory,否則 SQL Server 會貪婪佔用幾乎所有實體記憶體。Min/Max 範圍模式兼顧彈性與保護,是標準運維作法。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved