伺服器從 Win2000 升級為 Win2003、實體記憶體從 512MB 擴充至 1GB 後,SQL Server 緩衝集區從 400MB 飆升至 900MB 且持續增長,導致同機其他應用程式出現「記憶體配置不足」警告。
SQL Server 預設會根據作業系統回報的可用實體記憶體,動態擴縮緩衝集區:
此為**設計預期行為**,非 Bug。但在多應用共存環境下,會嚴重擠佔其他程式資源。
| 策略 | 設定範例 | 適用場景 |
|---|---|---|
| 區間動態管理 | Min 0 MB, Max 256 MB | 多應用共存,需彈性分享記憶體 |
| 固定記憶體 | Min 256 MB, Max 256 MB | 專用資料庫伺服器,追求穩定效能 |
本案例建議採**區間動態管理**,如 Min 0 / Max 256 MB,保留 768 MB 給 OS 與其他應用。
設定完成後,**重啟 SQL Server 服務**使配置生效,讓引擎重新規劃記憶體配置。
使用效能監視器監控計數器:
SQL Server:Buffer Manager → Target Pages / Total PagesProcess(sqlservr) → Working Set / Private Bytes確認實際佔用穩定在設定上限內,且其他應用不再報記憶體不足。
SQL Server 預設激進佔用記憶體策略利於專用資料庫伺服器,但在共存環境**必須顯式設定上限**。配合監控微調,即可實現多應用和諧共存。