某資料庫伺服器為支援其他應用程式,在維持作業系統版本不變下進行軟硬體升級:OS 從 Windows 2000 升級至 Windows Server 2003,記憶體從 512MB 擴充至 1GB。升級初期表現良好,但不久後其他應用程式頻繁出現「記憶體配置不足」警告。追蹤發現 SQL Server 佔用記憶體從升級前的 400MB 飆升至 900MB 且持續成長。
預設情況下,SQL Server 啟動後會根據作業系統回報的實體記憶體動態調整緩衝集區大小。只要可用實體記憶體維持在 4MB~10MB 間,SQL Server 就會持續擴大緩衝集區(保留 4~10MB 給 OS 避免頻繁分頁)。當可用記憶體變少時,SQL Server 才會釋放記憶體回給 OS。
為讓所有應用程式都能獲得滿意效能,需限制 SQL Server 記憶體使用量。透過企業管理員 → 伺服器屬性 → 「記憶體」索引標籤,設定 min server memory 與 max server memory。
例如設定最小 0MB、最大 255MB,保留記憶體給其他應用程式。
將最小值與最大值設為相同數值(如 255MB),強制 SQL Server 使用固定記憶體。
雖然記憶體設定屬進階選項,但設定完成後建議重新啟動 SQL Server 服務,讓記憶體管理機制能更好地安排配置。