分享
 
 
 

SQL Server數據庫內存會不斷增加的問題分析

王朝mssql·作者佚名  2008-08-15
窄屏简体版  字體: |||超大  

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 得以獲得盡可能最大的高速緩衝存儲器而不至引起額外的交換。

實例的目標內存設置與數據庫緩衝池的頁相對於可用池大小的需求有關。在任何即時點,緩衝區頁的總需求取決於滿足所有當前執行的查詢所需的數據頁數。如果相對於高速緩衝存儲器內的頁數,數據頁的需求很大,則當前在緩衝區內的每一頁很可能在相對較短的時間內由新頁替換。這可由"緩衝區管理器"對象的"頁生命期"性能計數器來度量。對於相對較小的緩衝區有較高需求的情況將生成短生命期,而純粹的影響就是使 I/O 增加,因為在頁可由多個邏輯讀取引用之前往往要被重寫。為減輕這個問題,數據庫引擎可以獲取更多的內存以增加高速緩衝存儲器的大小。當頁生命期長時,數據庫引擎將可用內存定位於目標的高端 (10 MB);而當頁生命期短時,數據庫引擎定位於目標範圍的低端 (4 MB)。

隨著其它應用程序在運行 SQL Server 實例的計算機上啟動,它們消耗內存致使可用物理內存量降到 SQL Server 的目標以下。SQL Server 實例於是從其地址空間釋放足夠內存,以使可用內存量回到 SQL Server 的目標。如果有其它應用程序停止運行而使可用內存增多,SQL Server 實例將增加其內存分配大小。SQL Server 可以每秒釋放並獲取幾 MB 字節的內存,這使它得以根據內存分配變化作出快速調整。

你可以通過設置允許sql server可以使用的最大內存來做限制:最小和最大服務器內存的影響

min server memory 和 max server memory 配置選項建立由 SQL Server 數據庫引擎使用的內存量的上限和下限。數據庫引擎並不立即獲取 min server memory 中指定的內存量。數據庫引擎啟動時只使用初始化所需的內存。隨著數據庫引擎工作負荷的增加,它將繼續獲取支持工作負荷所需的內存。數據庫引擎直到到達 min server memory 中指定的內存量才會釋放任何所需的內存。一旦到達 min server memory,數據庫引擎將使用標準算法(使操作系統的可用內存保持在 4 MB 到 10 MB 之間)獲取和釋放所需內存。唯一的區別是數據庫引擎從不將內存分配降到 min server memory 所指定的水平下,也從不獲取超過max server memory 所指定水平的內存。

數據庫引擎獲取的內存量完全取決於放置在實例上的工作負荷。不處理很多請求的 SQL Server 實例可能永遠達不到 min server memory。

如果為 min server memory 和 max server memory 指定相同的值,則一旦分配給數據庫引擎的內存達到該值,數據庫引擎將停止動態釋放和獲取內存。

如果在運行 SQL Server 實例的計算機上頻繁啟動或停止其它應用程序,啟動這些應用程序所需的時間可能會因 SQL Server 實例分配和釋放內存而延長。另外,如果 SQL Server 是幾個在一臺計算機上運行的服務器應用程序中的一個,系統管理員可能需要控制分配給 SQL Server 的內存量。在這些情況下,可以使用 min server memory 和 max server memory 選項控制 SQL Server 可以使用的內存量。

何設置固定的內存量(企業管理器)

設置固定的內存量

展開一個服務器組。

右擊一個服務器,再單擊"屬性"。

單擊"內存"選項卡。

單擊"使用固定的內存大小 (MB)",然後將固定內存滑塊放在適當的位置。

說明:

如果使用默認設置,則 Microsoft® SQL Server™ 將動態配置內存。這是由sql server的內存管理機制決定的。

 
 
 
免責聲明:本文為網絡用戶發布,其觀點僅代表作者個人觀點,與本站無關,本站僅提供信息存儲服務。文中陳述內容未經本站證實,其真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,並請自行核實相關內容。
2023年上半年GDP全球前十五強
 百态   2023-10-24
美眾議院議長啟動對拜登的彈劾調查
 百态   2023-09-13
上海、濟南、武漢等多地出現不明墜落物
 探索   2023-09-06
印度或要將國名改為「巴拉特」
 百态   2023-09-06
男子為女友送行,買票不登機被捕
 百态   2023-08-20
手機地震預警功能怎麽開?
 干货   2023-08-06
女子4年賣2套房花700多萬做美容:不但沒變美臉,面部還出現變形
 百态   2023-08-04
住戶一樓被水淹 還衝來8頭豬
 百态   2023-07-31
女子體內爬出大量瓜子狀活蟲
 百态   2023-07-25
地球連續35年收到神秘規律性信號,網友:不要回答!
 探索   2023-07-21
全球鎵價格本周大漲27%
 探索   2023-07-09
錢都流向了那些不缺錢的人,苦都留給了能吃苦的人
 探索   2023-07-02
倩女手遊刀客魅者強控制(強混亂強眩暈強睡眠)和對應控制抗性的關系
 百态   2020-08-20
美國5月9日最新疫情:美國確診人數突破131萬
 百态   2020-05-09
荷蘭政府宣布將集體辭職
 干货   2020-04-30
倩女幽魂手遊師徒任務情義春秋猜成語答案逍遙觀:鵬程萬裏
 干货   2019-11-12
倩女幽魂手遊師徒任務情義春秋猜成語答案神機營:射石飲羽
 干货   2019-11-12
倩女幽魂手遊師徒任務情義春秋猜成語答案昆侖山:拔刀相助
 干货   2019-11-12
倩女幽魂手遊師徒任務情義春秋猜成語答案天工閣:鬼斧神工
 干货   2019-11-12
倩女幽魂手遊師徒任務情義春秋猜成語答案絲路古道:單槍匹馬
 干货   2019-11-12
倩女幽魂手遊師徒任務情義春秋猜成語答案鎮郊荒野:與虎謀皮
 干货   2019-11-12
倩女幽魂手遊師徒任務情義春秋猜成語答案鎮郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手遊師徒任務情義春秋猜成語答案鎮郊荒野:指鹿為馬
 干货   2019-11-12
倩女幽魂手遊師徒任務情義春秋猜成語答案金陵:小鳥依人
 干货   2019-11-12
倩女幽魂手遊師徒任務情義春秋猜成語答案金陵:千金買鄰
 干货   2019-11-12
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有