為什么需要監(jiān)控buffer cache?

為什么需要監(jiān)控buffer cache采盒?

內(nèi)存使用會對性能產(chǎn)生重大影響旧乞。當(dāng)內(nèi)存不足時(shí),數(shù)據(jù)頁會經(jīng)常從緩沖區(qū)緩存中清除纽甘。這會減慢查詢速度良蛮,因?yàn)?SQL Server 必須到磁盤上查找數(shù)據(jù)頁,將其恢復(fù)到緩沖區(qū)緩存悍赢,然后在返回查詢結(jié)果之前讀取該頁决瞳。

查詢開始運(yùn)行緩慢的原因有很多货徙。但是,如果您想排除內(nèi)存問題皮胡,請查看緩沖區(qū)緩存內(nèi)部發(fā)生了什么痴颊。對其內(nèi)部的窺視將確定哪個(gè)數(shù)據(jù)庫、表或索引正在占用內(nèi)存并對緩沖區(qū)施加壓力屡贺。

要查看哪個(gè)數(shù)據(jù)庫消耗最多內(nèi)存蠢棱,請使用以下查詢:

SELECT
CASE database_id
WHEN 32767 THEN 'ResourceDb'
ELSE db_name(database_id)
END AS database_name, COUNT(1)/128 AS megabytes_in_cache
FROM sys.dm_os_buffer_descriptors
GROUP BY DB_NAME(database_id) ,database_id
ORDER BY megabytes_in_cache DESC;

要識別消耗最多內(nèi)存的表或索引,請?jiān)谀獧z查的數(shù)據(jù)庫中運(yùn)行此查詢:

SELECT COUNT(1)/128 AS megabytes_in_cache
,name ,index_id
FROM sys.dm_os_buffer_descriptors AS bd
INNER JOIN
(
SELECT object_name(object_id) AS name
,index_id ,allocation_unit_id
FROM sys.allocation_units AS au
INNER JOIN sys.partitions AS p
ON au.container_id = p.hobt_id
AND (au.type = 1 OR au.type = 3)
UNION ALL
SELECT object_name(object_id) AS name
,index_id, allocation_unit_id
FROM sys.allocation_units AS au
INNER JOIN sys.partitions AS p
ON au.container_id = p.partition_id
AND au.type = 2
) AS obj
ON bd.allocation_unit_id = obj.allocation_unit_id
WHERE database_id = DB_ID()
GROUP BY name, index_id
ORDER BY megabytes_in_cache DESC;

使用指標(biāo)管理內(nèi)存
雖然抽查數(shù)據(jù)庫和索引是否存在內(nèi)存過度使用問題甩栈,但跟蹤緩沖區(qū)緩存指標(biāo)確實(shí)是識別和解決內(nèi)存內(nèi)部壓力導(dǎo)致的性能問題的最佳方法泻仙。

以下是要監(jiān)控以改善與內(nèi)存相關(guān)的性能問題的前五個(gè)指標(biāo):

  1. Buffer Cache Hit Ratio
    此指標(biāo)顯示 SQL Server 如何利用緩沖區(qū)緩存
    命中率標(biāo)識來自緩沖區(qū)緩存的數(shù)據(jù)頁完成的頁請求與所有數(shù)據(jù)頁請求的百分比
    緩沖區(qū)緩存中找不到的頁面從磁盤中讀取,這樣會慢很多
    理想的緩沖區(qū)緩存比率為 100(即 SQL Server 從緩沖區(qū)緩存讀取所有頁面量没,不從磁盤讀扔褡)
    推薦的緩沖區(qū)緩存值大于 90
  2. Page Life Expectancy (PLE)
    頁面預(yù)期壽命衡量數(shù)據(jù)頁面在緩沖區(qū)緩存中停留的時(shí)間(以秒為單位)
    PLE 越長,SQL Server 從緩沖區(qū)緩存讀取頁面而不必轉(zhuǎn)到磁盤的機(jī)會就越大
    如果沒有足夠的內(nèi)存殴蹄,數(shù)據(jù)頁會更頻繁地從緩沖區(qū)緩存中刷新究抓,以釋放新頁的空間
    從歷史上看,當(dāng)系統(tǒng)的內(nèi)存比現(xiàn)在少得多時(shí)袭灯,“正炒滔拢”的 PLE 值為 300 秒
    今天,使用一個(gè)公式來確定“好”的 PLE:頁面預(yù)期壽命 = 服務(wù)器上每 4 GB RAM 的頁面預(yù)期壽命 = 300 秒
    如果隨著時(shí)間的推移進(jìn)行監(jiān)測稽荧,PLE 應(yīng)該保持穩(wěn)定
    快速橘茉、頻繁的減少表明內(nèi)存問題
    下降超過 50% 應(yīng)立即調(diào)查
  3. Page Reads/Sec (Server Level)
    此指標(biāo)顯示一秒內(nèi)在實(shí)例上的所有數(shù)據(jù)庫中發(fā)生了多少物理讀取(即從磁盤讀纫陶伞)
    物理讀取既昂貴又緩慢
    通過使用更大的數(shù)據(jù)緩存捺癞、智能索引和更高效的查詢,或通過更改數(shù)據(jù)庫設(shè)計(jì)來減少物理讀取
    推薦值小于90
    高于 90 的值表示內(nèi)存不足和索引問題
  4. Page Writes/Sec
    此指標(biāo)顯示一秒鐘內(nèi)在服務(wù)器級別將頁面寫入磁盤的次數(shù)
    推薦值小于90
  5. Pages Input/Sec and Pages Output/Sec (Memory Counters)
    Pages input/sec 是每秒從磁盤引入的頁面數(shù)
    Pages output/sec 是每秒寫入磁盤以在緩沖區(qū)緩存中騰出空間的頁面數(shù)
    Pages/sec 是頁面輸入/秒和頁面輸出/秒的總和
    如果 pages/sec 值始終超過 50构挤,則需要進(jìn)行額外調(diào)查
    健康的緩沖區(qū)緩存是優(yōu)化 SQL Server 查詢速度的重要組成部分。盡管內(nèi)存問題只是會減慢查詢響應(yīng)的幾個(gè)因素之一惕鼓,但它們很容易識別和解決筋现。跟蹤這五個(gè)關(guān)鍵指標(biāo)可以幫助您將數(shù)據(jù)頁保留在緩沖池中更長時(shí)間,這樣 SQL Server 就不必在返回查詢結(jié)果之前浪費(fèi)時(shí)間搜索磁盤箱歧。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末矾飞,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子呀邢,更是在濱河造成了極大的恐慌洒沦,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,464評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件价淌,死亡現(xiàn)場離奇詭異申眼,居然都是意外死亡瞒津,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,033評論 3 399
  • 文/潘曉璐 我一進(jìn)店門括尸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來巷蚪,“玉大人,你說我怎么就攤上這事濒翻∑ò兀” “怎么了?”我有些...
    開封第一講書人閱讀 169,078評論 0 362
  • 文/不壞的土叔 我叫張陵有送,是天一觀的道長淌喻。 經(jīng)常有香客問我,道長雀摘,這世上最難降的妖魔是什么裸删? 我笑而不...
    開封第一講書人閱讀 59,979評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮届宠,結(jié)果婚禮上烁落,老公的妹妹穿的比我還像新娘。我一直安慰自己豌注,他們只是感情好伤塌,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,001評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著轧铁,像睡著了一般每聪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上齿风,一...
    開封第一講書人閱讀 52,584評論 1 312
  • 那天药薯,我揣著相機(jī)與錄音,去河邊找鬼救斑。 笑死童本,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的脸候。 我是一名探鬼主播穷娱,決...
    沈念sama閱讀 41,085評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼运沦!你這毒婦竟也來了泵额?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,023評論 0 277
  • 序言:老撾萬榮一對情侶失蹤携添,失蹤者是張志新(化名)和其女友劉穎嫁盲,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體烈掠,經(jīng)...
    沈念sama閱讀 46,555評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡羞秤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,626評論 3 342
  • 正文 我和宋清朗相戀三年缸托,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片锥腻。...
    茶點(diǎn)故事閱讀 40,769評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡嗦董,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出瘦黑,到底是詐尸還是另有隱情京革,我是刑警寧澤,帶...
    沈念sama閱讀 36,439評論 5 351
  • 正文 年R本政府宣布幸斥,位于F島的核電站匹摇,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏甲葬。R本人自食惡果不足惜廊勃,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,115評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望经窖。 院中可真熱鬧坡垫,春花似錦、人聲如沸画侣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,601評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽配乱。三九已至溉卓,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間搬泥,已是汗流浹背桑寨。 一陣腳步聲響...
    開封第一講書人閱讀 33,702評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留忿檩,地道東北人尉尾。 一個(gè)月前我還...
    沈念sama閱讀 49,191評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像燥透,于是被迫代替她去往敵國和親代赁。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,781評論 2 361

推薦閱讀更多精彩內(nèi)容