程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 為何SQL SERVER內存會不斷增加

為何SQL SERVER內存會不斷增加

編輯:關於SqlServer

SQL SERVER內存會不斷增加

當 SQL Server 數據庫引擎在 Microsoft® Windows NT® 或 Windows® 2000 上運行時,其默認內存管理行為並不是獲取特定的內存量,而是在不產生多余換頁 I/O 的情況下獲取盡可能多的內存。為此,數據庫引擎獲取盡可能多的可用內存,同時保留足夠的可用內存以防操作系統交換內存。

SQL Server 實例在啟動時通常獲取 8 到 12 MB 的內存以完成初始化過程。當實例完成初始化後,就不會再獲取更多的內存,直到用戶連接到該實例並開始產生工作負荷。這時,該實例根據需要不停地獲取內存以支持工作負荷。隨著更多的用戶連接並運行查詢,SQL Server 將獲取支持需求所需的額外內存。該實例將繼續獲取內存直到達到自身的內存分配目標,並且直到達到該目標的下限才會釋放任何內存。

為了在不產生多余換頁 I/O 的情況下獲取盡可能多的內存,SQL Server 的每個實例都設置一個內存獲取目標,直到計算機的可用物理內存在 4 MB 到 10 MB 的范圍內。之所以選擇該范圍是因為測試表明 Windows NT 和 Windows 2000 都有最小內存交換,直到內存分配等於可用物理內存減去 4 MB。工作負荷處理任務重的 SQL Server 實例保留的可用物理內存為范圍的較低端 (4 MB);工作負荷處理任務輕的實例保留的可用物理內存為范圍的較高端 (10 MB)。

SQL Server 實例的目標隨工作負荷的改變而變化。當更多的用戶連接並產生更多的工作時,該實例傾向於獲取更多的內存以使可用的內存保持在 4 MB 的限制以下。當工作負荷減輕時,該實例將其目標調整為 10 MB 的可用空間,並釋放內存給操作系統。將可用空間量保持在 10 MB 與 4 MB 之間可防止 Windows NT 或 Windows 2000 過多執行換頁操作,同時使 SQL Server 得以獲得盡可能最大的高速緩沖存儲器而不至引起額外的交換。

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