close
最近,為了能在資料庫伺服器中運行其他應用程式,在保持資料庫操作系統版本不變的前提下對資料庫伺服器進行了軟、硬體上的升級。在軟體上,將操作系統從Windows 2000升級到Windows Server 2003;在硬體上,將伺服器中的記憶體由原來的512MB增加到1GB(1024MB)。
  在升級後的開始幾個星期之內,伺服器在使用中表現良好。但是不久後就發現,在伺服器上同時運行的其他應用程式卻出現了異常,不時地報出記憶體分配不足的警告。經過幾次跟蹤後發現,原來是SQL Server吞去了大部分記憶體所致。被SQL Server佔用的記憶體由升級前的不到400MB一下子增加到現在的900MB,並且有不斷增長的趨勢。
  經過查詢才知道這是SQL Server 緩衝區的預設行為。預設情況下,在啟動 SQL Server之後,SQL Server會根據操作系統報告的實體記憶體數來動態增大或縮小高速緩衝記憶體的容量。只要可用實體記憶體大小保持在4MB到10MB之間,SQL Server 緩衝池就會繼續增大(保留可用實體記憶體在4MB到10MB之間是為了避免操作系統因為缺少記憶體而頻繁地換頁)。如果物理可用記憶體變得較少的時候,則SQL Server會將一些記憶體釋放給操作系統。
  為了使運行在伺服器上的應用程式都能達到比較滿意的效果,同時也為了能給其他應用程式分配足夠的記憶體,需要採取措施限制SQL Server 的記憶體使用量。我們可以通過設置SQL Server 資料庫引擎使用的記憶體的上下限來達到此目的。其具體步驟是:
  1.打開企業管理器,展開伺服器組。
  2.單擊該伺服器,點擊滑鼠右鍵,單擊屬性功能表。
  3.在彈出的對話方塊中單擊記憶體選項卡。
  記憶體設置方法有兩種:
  1.設置min server memory和max server memory 在一個範圍段內。
  比如,我們將它設置成最小0MB,最大255MB。這種方法在為一台伺服器中運行多個應用程式分配記憶體時非常有用。
  2.設置 min server memory 和 max server memory 為同一數值。
  比如,可以將它最大和最小值都設置成255MB。這樣的設置方法與視窗中的另一個選項“使用固定的記憶體大小” 相一致。
  雖然記憶體最小值和最大值設置是高級選項,但在設置完畢之後,最好還是先將SQL Server服務停止後再重新運行,以便SQL Server能更好地對記憶體進行合理安排。

http://blog.xuite.net/pckkk/pc/11161577?ref=rel

arrow
arrow
    全站熱搜

    小草 發表在 痞客邦 留言(0) 人氣()