SQL伺服器記憶體有兩種基本管理方法:動態分配和靜態分配

來源:互聯網
上載者:User

SQL伺服器記憶體有兩種基本管理方法:動態分配和靜態分配

控製程序可使用的記憶體數量。動態分配允許管理員聲明一塊記憶體的大小;考慮到它的實際使用,SQL伺服器可以分配給其需要佔用的記憶體的最大值,並且(理論上)在沒有使用記憶體的情況下將其釋放。靜態分配則是建立一塊固定的記憶體空間,提供給SQL Server使用——不再進行分配。
  
  在預設情況下,SQL Server被設定成動態分配,分配給其正在啟動並執行電腦內所有可用的實體記憶體。許多管理員注意到SQL Server記憶體隨時間的流逝被逐漸消耗殆盡時,其原因很可能是故障或是記憶體漏洞,但這個程式正是被設計成這樣的。SQL Server就是要在任何可能的情況下在電腦中運行,並因此為達到其最佳效能而使用所有可用的記憶體。如果SQL Server在獨立的機器中運行,那麼就讓它分配和釋放其需要的記憶體吧。
  
  在一個小型商務服務器機器中,SQL可能與其他程式,如IIS,同時運行,管理員或許嘗試著進行設定,使SQL Server運行在一塊固定大小的記憶體,目的是控制其不會佔用用於共用的記憶體。但這並不一定能如願以償。一方面,將記憶體的最高限度設定得太低,並且沒有分配給SQL伺服器足夠的可用記憶體來用作類似交易記錄或查詢執行的緩衝,所有這些都很難辦到。使SQL伺服器得到執行操作所需記憶體的惟一方法就是換出其他的頁面,這是個緩慢的過程。
  
  有許多方法可以計算出最好的記憶體配置。如果你有可預知的使用者負載,依照使用者所需的最大數目分配給他們。微軟推薦至少用4 MB用作動態最大空間,這已經成為一個可能的規則。如果你的使用者負載變化範圍很大——如以下情況,當你通過IIS 的前端串連到公用的網際網路來支援你的資料庫服務的時候——即時的統計資料將會比僅憑猜測所作的工作協助更大。在高峰期,把SQL Server的快取命中率和每秒缺頁率等效能數字搜集起來。如果這些資料表明SQL Server正在做大量的交換,那麼增加最大記憶體空間直到交換逐漸減少。每秒一次或更多次的交換是有壞處的。
  
  另一種選擇是使“為SQL Server預留實體記憶體”的選項可用,這可以防止SQL Server把已經分配給它的記憶體換出,即使當其他應用程式能夠使用它時。這可以叫做是一把雙刃劍:它既可以相當大程度的提高效能,也可能帶來更大的效能損害。在有許多RAM 可以共用的(1 GB 或更多)的系統中,這是值得一試的,但是當有其他關鍵的進程可能突然需要大量的記憶體時,這種辦法是不應該使用的。(並且如果需要的話,SQL Server可能會被迫放棄一些它自己的記憶體)。如果SQL Server是在獨立的機器上運行,用這種辦法最佳化效能則是值得的。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.