sql server2005記憶體過高釋放方法

2022-02-07 08:06:14 字數 2025 閱讀 7770

最近做了乙個**qq.115sou.com,在伺服器中sql server占用記憶體非常高,加記憶體後,sql server又吃掉新加的記憶體,好像記憶體永遠不夠用一樣,怎麼辦? 

其實這並不一定是由於sql server活動過度造成的,在啟動sql server後,sql server記憶體使用量會持續穩定上公升,即使伺服器上活動很少也不會下降,直到物理記憶體僅剩下4到10m為止,這是sql server緩衝池的預期行為,正常現象。 

不過這種現象使得伺服器應付峰值的能力降低,當突然有較大的活動時,可能使得伺服器當機。要限制緩衝池的記憶體使用量,可以開啟「sql server屬性」->「記憶體」,在這一頁中降低「最大值」,點選「確定」。點選「執行值」,可以發現「最大值」沒有變化,說明剛才的設定並沒有生效,實際上該設定更改後要重新啟動sql server才能生效,重新啟動sql server。 

這裡的記憶體,並不是指sql server整個占用的記憶體,而是指sql server緩衝池所用的記憶體,所以sql server實際所佔記憶體要大於此值。

預設情況下sqlserver2005的記憶體會根據可用資源的情況動態的變化.min server memory的預設值為0,max server memory的預設值為2147483647,可以為max server memory的值指定為最小內在為16mb.

但是如果把max server memory的值設定為最小降底sqlserver2005的效能,甚至無法啟動.如果出現無法啟動的時候可以使用-f startup選項進行啟動,並將max server memory設定成以前的值..

當sqlserver動態使用記憶體時,他會定期查詢系統以確定可用物理記憶體量,在server2000中,sql會根據伺服器的活動來增大或收縮緩衝區調整快取,以使可用物理記憶體保持在4mb和10mb之間.保持此可用記憶體可避免win server2000分頁.如果記憶體過少則server2000會釋放記憶體給winserver2000,如果記憶體過多sql2000將分配記憶體給緩衝池.sql僅在工作負荷需要時才增加記憶體給緩衝池.處於休眠狀態的伺服器不會增加其緩衝池的記憶體.

手動設定sql記憶體的方法:

一:將min server memory和man server memory設定成同一值,此值與達到該值後分配給緩衝池的固定記憶體相對應.

二:將min server memory和man server memory設定成乙個範圍內,這種方法系統或資料管理員希望配置sql例項,同時又要考慮同一臺機器上執行其它應用程式的記憶體需求很有用.

min server memory保證了sqlserver例項的緩衝池可用的最小記憶體量,sql server不會在啟動時立即分配min server memory指定的記憶體量,不過除非降低min server memory的值,否則記憶體使用量由於客戶端使用達到該值後,sql server不能分已經分配的緩衝池中釋放記憶體.

sql server 並不一定分配指定的min server memory,如果sql server的負荷不需要分配min server memory指定的記憶體,sql server將以較小的記憶體執行....

max server memory 避免了 sql server 緩衝池使用的記憶體量多於指定的記憶體量,這樣剩餘的可用記憶體可以用來快速啟動其他應用程式。sql server 不會在啟動時立即分配 max server memory 指定的記憶體量。記憶體使用量會隨著 sql server 的需要增加,直到達到 max server memory 指定的值。除非提高 max server memory 的值,否則 sql server 不能超過此記憶體使用量。

在減小 max server memory 值之前,可以使用效能監視器來檢查 sqlserver:buffer manager 效能物件,並注意 stolen pages 和 reserved pages 計數器的當前值。這些計數器將記憶體報告為 8k 頁的數目。應將 max server memory 設定為大於這兩個值的和,以免出現記憶體不足錯誤。對於合理的最低 max server memory 設定 (mb),近似值為 ([stolen pages] + [reserved pages])/ 100。若要減小 max server memory,可能需要重新啟動 sql server 以釋放記憶體。

SQL Server2005複製實現

一 準備工作 1 在發布伺服器上建立乙個共享目錄,作為發布快照檔案的存放目錄。例如 在d 盤根目錄下建資料夾名為pub 2 設定sql 發布伺服器和訂閱伺服器均設定 步驟 開啟服務 控制面板 管理工具 服務 右擊sqlserver agent 屬性 登入 選擇 此帳戶 輸入或選擇第一步中建立的win...

SQL Server 2005完全解除安裝

sql server 2005的解除安裝是乙個非常頭疼的問題。我曾經嘗試過直接使用 新增或刪除程式 工具解除安裝 清除安裝目錄 刪除登錄檔內容等等各種方式綜合解除安裝,勉強成功。現在終於找到了乙個事半功倍的方法,多次嘗試,未有失敗,具體如下 第一種是微軟官方提供的工具 msicuu2.exe 微軟官...

SQLSERVER 2005 遞迴查詢

專案中有使用者組表usergroup如下 其中pid表示當前組的上級組 表資料如下 現在想查詢出頂級組 沒有上級組叫頂級組 a1組的所有子孫組id,sql如下 查詢子節點 with rtd1 as select id pid from usergroup rtd2 as select from rt...