SQLSERVER性能監控級別步驟
下面先用一幅圖描述一下有哪些步驟和順序
1、識別瓶頸
識別瓶頸的原因包括多個方面,例如,資源不足,需要添加或升級硬件;
工作負荷在同類資源之間分布不均勻,例如,一個磁盤被獨占;資源發生故障;資源配置不正確等
可能存在瓶頸以及對系統的影響
可能的瓶頸方面 |
對服務器的影響 |
內存使用 |
分配內存不足或SQLSERVER使用內存不足導致性能下降 |
CPU使用率 |
長期的高CPU使用率可能表明TSQL查詢需要優化或CPU需要升級 |
磁盤輸入/輸出I/O |
可以優化TSQL查詢以減少不必要的I/O(例如:使用索引) |
用戶連接 |
可能有太多用戶同時訪問服務器,從而導致性能下降 |
阻塞鎖 |
應用程序設計不合理阻塞妨礙并發,帶來更長的響應時間 |
2、監控級別
SQLSERVER提供了多種性能監控工具,可以使用他們來仔細檢查性能的不同方面,以不同的細致程度幫助用戶確定故障區域,
逐級逐步找到影響性能的最大因素
(1)系統級監控 --應當首先查看系統級信息,確認系統資源(硬件)、網絡體系結構對性能的影響,可以使用Windows應用程序日志,
Windows系統監視器進行監控
(2)數據庫級監控 --在進行系統監控后,還需要監控數據庫活動。使用SSMS中的活動監視器、SQLSERVER事件探查器和系統存儲過程監控鎖、
用戶連接數目
(3)客戶端應用程序監控 --最后,仔細檢查和評估特定的查詢的性能。使用SQL profiler 和系統視圖檢查對索引的使用情況、
查詢所需CPU時間和磁盤I/O操作
3、建立性能基線
當確定了性能監控中所涉及的資源、負載和目標后,開始進行監控,并建立性能基線與當前服務器性能進行比較。
性能基線是一個保證系統正常操作性能范圍值,達到或超過這個范圍,系統性能可能會顯著下降。
應該對接近或超過性能基線的數字做進一步調查找出原因監控的周期是一段時間,而不是一兩天。
其中應該包括數據庫活動的峰值時間和非峰值時間,數據查詢和批處理命令的響應時間、數據庫備份和還原所需時間
建立服務器性能基線后,將基線統計與當前服務器性能進行比較。對高于或遠低于基線的數字需要做進一步調查。
他們可能表明有需要調整或重新配置的區域。例如,執行一組查詢的時間增加,檢查這些查詢以確定能否重新編寫他們,
或者是否添加統計信息或索引
4、確認用戶活動
監視用戶活動有助于確定趨勢,例如,用戶運行的事務類型,運行的低效即席查詢的數量和占用資源最多的事務類型。
若要收集有關用戶的統計信息,請使用SQLSERVER PROFILER 或系統監視器SSMS活動監視器用于對SQLSERVER進行即席監視,
從而確定用戶在系統中的活動
5、隔離性能問題
通常同時使用多個SQLSERVER或Windows工具比一次只用一個工具隔離數據庫性能問題更有效。
例如,圖形執行計劃功能(也稱為“顯示計劃”)可以迅速識別單個查詢中的死鎖。
然而,如果同時使用SQLSERVER和Windows的監視功能,將更容易識別某些其他性能問題
通過對這些工具的靈活運用進行逐個性能問題的排查,而不是同時開啟SQL PROFILER 和Windows性能監視器
通過工具能夠監控與應用程序有關的問題包括:
(1)SQLSERVER存儲過程或用戶提交的TSQL語句
(2)用戶活動(如阻塞或死鎖)
(3)硬件活動(如磁盤使用)
(4)應用程序開發錯誤
(5)硬件錯誤(如磁盤錯誤,網絡錯誤)
(6)由于數據庫設計不正確導致過多阻塞
---------------------------------------------------華麗的分割線-------------------------------------------------------
Windows性能監視器:perfmon.exe
SQLSERVER PROFILER
SSMS
如有不對的地方,歡迎大家拍磚o(∩_∩)o
文章列表