Windows下使用性能監(jiān)視器監(jiān)控SqlServer的常見(jiàn)指標(biāo)
上邊文章中提到win的性能監(jiān)視器是監(jiān)控?cái)?shù)據(jù)庫(kù)性能必備的工具,接下來(lái)我就給大家介紹一些常見(jiàn)的監(jiān)控指標(biāo),其實(shí)無(wú)非就是磁盤,cpu,內(nèi)存等硬件的運(yùn)行指標(biāo)還有數(shù)據(jù)庫(kù)自身的像鎖啊、用戶連接數(shù)啊、還有就是根據(jù)自身業(yè)務(wù)決定的需要注意的參數(shù)指標(biāo)。
1.SQL Server Buffer: Buffer Cache Hit Ratio
這是一個(gè)很重要查看內(nèi)存是否不足的參數(shù)。SQL Server Buffer中的計(jì)數(shù)器Buffer Cache Hit Ratio用來(lái)指出SQLServer從緩存中而不是磁盤中獲得數(shù)據(jù)的頻率。sqlserver會(huì)將某些查詢過(guò)的數(shù)據(jù)緩存在內(nèi)存中用于以后再次查詢使用。當(dāng)一個(gè)查詢A進(jìn)來(lái)了以后數(shù)據(jù)庫(kù)會(huì)編譯這個(gè)sql看看需要哪些數(shù)據(jù),然后執(zhí)行計(jì)劃首先去內(nèi)存中找看是否有這次查詢所需要的數(shù)據(jù),如果這個(gè)同樣的sql剛才已經(jīng)執(zhí)行過(guò)了或者該表的數(shù)據(jù)已經(jīng)緩存在內(nèi)存中,但是卻沒(méi)有在內(nèi)存中找到數(shù)據(jù),那就有可能是因?yàn)閮?nèi)存不足引起內(nèi)存擠壓將緩存數(shù)據(jù)寫回硬盤或者釋放掉來(lái)提供數(shù)據(jù)庫(kù)其他請(qǐng)求來(lái)使用。一般來(lái)說(shuō)oltp的系統(tǒng),這個(gè)值最起碼也應(yīng)該在90%以上,理想值是99%。如果這個(gè)值低于90%,那建議你應(yīng)該添加內(nèi)存了。
2.Memory: Pages/sec
這個(gè)也是監(jiān)控內(nèi)存是否不足的一個(gè)比較重要的參數(shù)。這個(gè)計(jì)數(shù)器記錄的是每秒鐘內(nèi)存和磁盤之間交換的頁(yè)面數(shù)。頻繁的交換頁(yè)面就會(huì)消耗更多的io,這會(huì)影響到服務(wù)器的性能。打個(gè)比方,超市有一個(gè)貨架上邊擺滿了新進(jìn)的各種商品a、b、c,當(dāng)你去超市想買a的時(shí)候直接去貨架就能拿到a,方便的很,當(dāng)顧客進(jìn)超市逛一圈以后跟你說(shuō)我怎么沒(méi)有發(fā)現(xiàn)舊商品d呢,我就想買這個(gè)d,然后工作人員就會(huì)去倉(cāng)庫(kù)把商品d拿出來(lái)擺放到貨架上供下次顧客來(lái)買。但是貨架擺滿了怎么辦呢,只能將時(shí)間長(zhǎng)沒(méi)有人問(wèn)津的a下架放到倉(cāng)庫(kù)然后空出來(lái)地方擺放d,但是下次另一個(gè)顧客來(lái)了又有想要購(gòu)買a的意向,工作人員就得再次把a(bǔ)拿出來(lái)替換掉貨架上的d。其實(shí)內(nèi)存就是這個(gè)貨架,硬盤就是倉(cāng)庫(kù)。因?yàn)樨浖芴×耍瑢?dǎo)致只能頻繁的更換貨架上的商品來(lái)提供正常的運(yùn)營(yíng),想減少反復(fù)來(lái)回搬運(yùn)產(chǎn)生的io開(kāi)銷,只能換個(gè)更大的貨架來(lái)滿足需求。
如果服務(wù)器上只跑的sqlserver,那這個(gè)指標(biāo)的理想范圍應(yīng)該是0-20之間,偶爾超過(guò)20的話影響不大,如果這個(gè)值頻繁的超過(guò)20,那說(shuō)明你的這臺(tái)服務(wù)器可能需要加內(nèi)存了。
當(dāng)然這個(gè)指標(biāo)要配合著上一個(gè)指標(biāo)Buffer Cache Hit Ratio來(lái)看,如果上一個(gè)指標(biāo)緩沖命中一直在99%或者更高,而這個(gè)期間內(nèi)你的頁(yè)交換一直在20以上,那意味著不僅僅是內(nèi)存不足,而且其他的程序占用了系統(tǒng)內(nèi)存。
3.Memory: Available Bytes
另一個(gè)監(jiān)控內(nèi)存情況的計(jì)數(shù)器就是這個(gè)。這個(gè)值最少最少也得大于5M,因?yàn)閟qlserver需要始終維持5-10m的自由內(nèi)存用于分配,當(dāng)這個(gè)值低于5m的時(shí)候,那sqlserver可能會(huì)因?yàn)槿鄙賰?nèi)存而產(chǎn)生性能瓶頸。
4.Physical Disk: % Disk Time
這個(gè)計(jì)數(shù)器記錄的是磁盤的繁忙程度(是整個(gè)磁盤陣列或者物理磁盤的繁忙程度)。理論上這個(gè)值應(yīng)該低于55%,如果持續(xù)的高于55%,那說(shuō)明這臺(tái)服務(wù)器上可能有io瓶頸。
如果只是偶爾的出現(xiàn)幾次,那不必?fù)?dān)心,但是可以對(duì)應(yīng)的找到這個(gè)時(shí)間點(diǎn),數(shù)據(jù)庫(kù)正在干嘛執(zhí)行了哪些語(yǔ)句,對(duì)應(yīng)的優(yōu)化一下。
5.Physical Disk: Avg. Disk Queue Length
這是一個(gè)比較重要的查看磁盤io情況的指標(biāo)。理論上每個(gè)物理磁盤的值不應(yīng)該超過(guò)2。當(dāng)然這個(gè)值是需要計(jì)算的,比如用4塊物理盤做了個(gè)raid10,此時(shí)在一個(gè)監(jiān)控周期內(nèi)磁盤隊(duì)列的均值是10,那每塊磁盤的隊(duì)列值就是10/4=2.5,那么就可以說(shuō)這個(gè)磁盤陣列存在i/o瓶頸了。這個(gè)跟之前的disktime指標(biāo)一樣,偶爾出現(xiàn)不必?fù)?dān)心,如果長(zhǎng)時(shí)間出現(xiàn),那就得著手考慮解決磁盤的io性能問(wèn)題了。
6.Processor: % Processor Time
這是監(jiān)控cpu情況的一個(gè)指標(biāo)(類似于disk time)。這個(gè)是觀察cpu利用率的一個(gè)關(guān)鍵參數(shù)。如果Processor Time計(jì)數(shù)器的值持續(xù)超過(guò)80%,說(shuō)明cpu存在瓶頸問(wèn)題。如果只是偶爾出現(xiàn),那說(shuō)明可能是這個(gè)時(shí)間點(diǎn)有個(gè)特別消耗cpu的查詢,可以在下一次這個(gè)時(shí)間點(diǎn)來(lái)臨的時(shí)候嘗試抓一下sql并且優(yōu)化它。如果在某一個(gè)時(shí)間點(diǎn)以后cpu一直飆高,常見(jiàn)的情況就是:1.突然間的高并發(fā)2.索引重整3.突然一個(gè)經(jīng)常使用的數(shù)據(jù)量特別大的索引失效了4.死鎖5.其他好多好多。先找到問(wèn)題所在,在處理掉它。
7.System: Processor Queue Length
這個(gè)指標(biāo)類似于disk queue length,也是算單個(gè)cpu的。單個(gè)cpu不能超過(guò)2,比如你是2u的機(jī)器,那這個(gè)值不應(yīng)該超過(guò)4,如果在一個(gè)監(jiān)控周期內(nèi)持續(xù)性的超過(guò)4,那就可能出現(xiàn)cpu瓶頸了。
基本上常用的就是這么多,還有好多可以配合你檢測(cè)sqlserver性能的計(jì)數(shù)器,有興趣的可以自己百度下?!?br />
- 查找sqlserver查詢死鎖源頭的方法 sqlserver死鎖監(jiān)控
- SQL Server 監(jiān)控磁盤IO錯(cuò)誤,msdb.dbo.suspect_pages
- SQL Server中使用Trigger監(jiān)控存儲(chǔ)過(guò)程更改腳本實(shí)例
- 利用SQL Server數(shù)據(jù)庫(kù)郵件服務(wù)實(shí)現(xiàn)監(jiān)控和預(yù)警
- Sql Server 死鎖的監(jiān)控分析解決思路
- Zabbix監(jiān)控SQL Server服務(wù)狀態(tài)的方法詳解
- 通過(guò)Python實(shí)現(xiàn)對(duì)SQL Server 數(shù)據(jù)文件大小的監(jiān)控告警功能
- zabbix監(jiān)控sqlserver的過(guò)程詳解
- SQL Server服務(wù)器監(jiān)控
相關(guān)文章
SQL Server向表中插入數(shù)據(jù)的三種方式
這篇文章主要介紹了SQL Server向表中插入數(shù)據(jù)的三種方式,文中通過(guò)代碼示例講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-04-04
SQL?Server查看服務(wù)器角色的實(shí)現(xiàn)方法詳解
這篇文章主要為大家介紹了SQL?Server查看服務(wù)器角色的實(shí)現(xiàn)方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01
sqlserver CONVERT()函數(shù)用法小結(jié)
文章分析總結(jié)了關(guān)于CONVERT()函數(shù)在操作日期時(shí)的一些常見(jiàn)的用法分析下面來(lái)看看2012-09-09
數(shù)據(jù)庫(kù)中identity字段不必是系統(tǒng)產(chǎn)生的唯一值 性能優(yōu)化方法(新招)
具有identity特性的字段,其值是系統(tǒng)產(chǎn)生的,自動(dòng)增加的,所以,一般把這個(gè)用在一個(gè)表的主鍵上。2011-09-09
sql?server多行數(shù)據(jù)合并一行顯示簡(jiǎn)單實(shí)現(xiàn)代碼
有時(shí)候我們需要將多行數(shù)據(jù)按照某一列進(jìn)行合并,以便更方便地進(jìn)行數(shù)據(jù)分析和處理,這篇文章主要給大家介紹了關(guān)于sql?server多行數(shù)據(jù)合并一行顯示簡(jiǎn)單實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下2023-12-12
將備份數(shù)據(jù)還原到數(shù)據(jù)庫(kù)的步驟
如何將備份數(shù)據(jù)庫(kù).bak導(dǎo)入到新的空數(shù)據(jù)庫(kù)或已有數(shù)據(jù)中?做筆記 分享給大家希望有幫助2009-10-10
利用sys.sysprocesses檢查SqlServer的阻塞和死鎖
Sys.SysProcesses 系統(tǒng)表是一個(gè)很重要的系統(tǒng)視圖,主要用來(lái)定位與解決Sql Server的阻塞和死鎖2011-10-10
sql server通過(guò)腳本進(jìn)行數(shù)據(jù)庫(kù)壓縮全備份的方法【推薦】
這篇文章主要介紹了sql server通過(guò)腳本進(jìn)行數(shù)據(jù)庫(kù)壓縮全備份的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-06-06

