熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL Server >> 正文

SQL Server中動態和靜態內存分配

2013-11-15 14:39:09  來源: SQL Server 

  SQL服務器有兩種基本管理方法動態分配和靜態分配用以控制程序可使用的內存數量動態分配允許管理員聲明一塊內存的大小考慮到它的實際使用SQL服務器可以分配給其需要占用的內存的最大值並且(理論上)在沒有使用內存的情況下將其釋放靜態分配則是創建一塊固定的內存空間提供給SQL Server使用——不再進行分配
  
  在默認情況下SQL Server被設置成動態分配分配給其正在運行的計算機內所有可用的物理內存許多管理員注意到SQL Server內存隨時間的流逝被逐漸消耗殆盡時其原因很可能是故障或是內存漏洞但這個程序正是被設計成這樣的SQL Server就是要在任何可能的情況下在電腦中運行並因此為達到其最佳性能而使用所有可用的內存如果SQL Server在獨立的機器中運行那麼就讓它分配和釋放其需要的內存吧
  
  在一個小型商業服務器機器中SQL可能與其他程序如IIS同時運行管理員或許嘗試著進行設置使SQL Server運行在一塊固定大小的內存目的是控制其不會占用用於共享的內存但這並不一定能如願以償一方面將內存的最高限度設置得太低並且沒有分配給SQL服務器足夠的可用內存來用作類似事務日志或查詢執行的緩存所有這些都很難辦到使SQL服務器得到執行操作所需內存的惟一方法就是換出其他的頁面這是個緩慢的過程
  
  有許多方法可以計算出最好的內存分配如果你有可預知的用戶負載依照用戶所需的最大數目分配給他們微軟推薦至少用 MB用作動態的最大空間這已經成為一個可能的規則如果你的用戶負載變化范圍很大——如以下情況當你通過IIS 的前端連接到公共的因特網來支持你的數據庫服務的時候——實時的統計數據將會比僅憑猜測所作的工作幫助更大在高峰期把SQL Server的高速緩存命中率和每秒缺頁率等性能數字搜集起來如果這些數據表明SQL Server正在做大量的交換那麼增加最大內存空間直到交換逐漸減少每秒一次或更多次的交換是有壞處的
  
  另一種選擇是使為SQL Server預留物理內存的選項可用這可以防止SQL Server把已經分配給它的內存換出即使當其他應用程序能夠使用它時這可以叫做是一把雙刃劍它既可以相當大程度的提高性能也可能帶來更大的性能損害在有許多RAM 可以共享的( GB 或更多)的系統中這是值得一試的但是當有其他關鍵的進程可能突然需要大量的內存時這種辦法是不應該使用的(並且如果需要的話SQL Server可能會被迫放棄一些它自己的內存)如果SQL Server是在獨立的機器上運行用這種辦法最佳化性能則是值得的
From:http://tw.wingwit.com/Article/program/SQLServer/201311/22125.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.