溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MSSQL內存架構及管理是怎樣的

發布時間:2021-11-29 13:46:54 來源:億速云 閱讀:156 作者:柒染 欄目:關系型數據庫

本篇文章給大家分享的是有關MSSQL內存架構及管理是怎樣的,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

1.  MSSQL內存架構

相比較Oracle,MSSQL的內存區域并沒那么清晰,但和Oracle類似,MSSQL內存區域大體也可以分為三個部分:buffer pool,query/workspace memory,其他cache/memory。下面,我們分別對這三個內存區域做簡要介紹:

1)  Bufferpool:

,case database_id

else db_name(database_id)

,count(*)*8/1024 as 'cached size (MB)'

group by db_name(database_id),database_id

2)  Query/workspacememory:

類似Oracle的PGA,MSSQL中,query memoy(也稱為workspace memory)用于存儲查詢執行時哈希和排序期間的臨時結果。雖然大家都知道Oracle的PGA,但MSSQL的query memory也許并沒有太多文檔可讀,因此,也并沒有太多人清楚和知道,包括MSSQL的background process,memory components等內部的一些細節和內容,都是這種現狀,這也許和多方面因素相關,這里不做太多的探討。但是,當你仔細的查看MSSQL中SQL語句的查詢計劃時,你會清楚的看到hash和sort等操作相關的query memory內容。

Query memory空間可以占到buffer pool大小的25%和75%之間,但是,當buffer pool不存在內存壓力時,query memory也可以進一步增長。對于所有代價低于3和query memory需求低于5M的小查詢,其query memory可以為之保留整個query memory5%的空間。單個查詢最多能占到整個query memory的20%以保證其他查詢的正常執行,這點來說,與Oracle的PGA非常類似??梢酝ㄟ^以下SQL語句來獲取查詢語句的query memory及相關授權情況:

select session_id,sql_handle,grant_time,requested_memory_kb

  from sys.dm_exec_query_memory_grants

,sum(isnull(granted_memory_kb,0))granted_memory_kb

   from sys.dm_exec_query_memory_grants

3)  其他cache/memory:

MSSQL內存區域,除了上面講述的buffer pool和query/workspace memory外,剩下的那就是其他cache/memory部分,該部分內存用于MSSQL中所有不能放于前述兩個內存區域的內存組件。這部分雖然不像Oracle中定義的那么清晰,但基本相當于Oracle中的SGA中除去buffer pool外的其他組件,這其中,主要是shared pool。該部分區域,雖然占據的內存不多,但包含眾多的內存組件,也很重要。我們可以通過以下SQL語句來查詢其相關信息:

select [name],[type],pages_kb,entries_count

select name,value,value_in_use,[description]

 where namelike'%server memory%'

       page_fault_count,memory_utilization_percentage,

       process_virtual_memory_low

以上就是MSSQL內存架構及管理是怎樣的,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女