程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 分析SQL Server中的動態和靜態內存分配

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

編輯:關於SqlServer
我們知道,SQL服務器有兩種管理方法,分別是動態分配和靜態分配,用以控制程序可使用的內存數量。動態分配允許管理員聲明一塊內存的大小;考慮到它的實際使用,SQL服務器可以分配給其需要占用的內存的最大值,並且(理論上)在沒有使用內存的情況下將其釋放。靜態分配則是創建一塊固定的內存空間,提供給SQL Server使用——不再進行分配。

  在默認情況下,SQL Server被設置成動態分配,分配給其正在運行的計算機內所有可用的物理內存。許多管理員注意到SQL Server內存隨時間的流逝被逐漸消耗殆盡時,其原因很可能是故障或是內存漏洞,但這個程序正是被設計成這樣的。SQL Server就是要在任何可能的情況下在電腦中運行,並因此為達到其最佳性能而使用所有可用的內存。如果SQL Server在獨立的機器中運行,那麼就讓它分配和釋放其需要的內存吧。

  在一個小型商業服務器機器中,SQL可能與其他程序,如IIS,同時運行,管理員或許嘗試著進行設置,使SQL Server運行在一塊固定大小的內存,目的是控制其不會占用用於共享的內存。但這並不一定能如願以償。一方面,將內存的最高限度設置得太低,並且沒有分配給SQL服務器足夠的可用內存來用作類似事務日志或查詢執行的緩存,所有這些都很難辦到。使SQL服務器得到執行操作所需內存的惟一方法就是換出其他的頁面,這是個緩慢的過程。

  有許多方法可以計算出最好的內存分配。如果你有可預知的用戶負載,依照用戶所需的最大數目分配給他們。微軟推薦至少用4 MB用作動態的最大空間,這已經成為一個可能的規則。如果你的用戶負載變化范圍很大——如以下情況,當你通過IIS 的前端連接到公共的因特網來支持你的數據庫服務的時候——實時的統計數據將會比僅憑猜測所作的工作幫助更大。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved