SQLSERVER 性能優化之Perfmon指標

PerfmonWindows系統性能監視程序。用於監視CPU使用率、內存使用率、硬盤讀寫速度、網絡速度等。

Processor/%Privileged Time
閥值:若是數值持續大於75%就表示存在瓶頸。
含義:這個計數器表示一個線程在特權模式下所使用的時間比例。當你的程序調用操做系統的方法(好比文件操做,網絡I/O或者分配內存),這些操做系統的方法是在特權模式下運行的。

Processor/ %UserTime      
      
與%Privileged Time計數器正好相反,指的是在用戶狀態模式下(即非特權模式)的操做所花的時間百分比。

Process(sqlservr.exe)/ %Processor Time
SQLServer進行的CPU使用狀況


Processor/% Interrupt Time
閥值:取決於處理器
含義:這個計數器表示處理器接收處理硬件中斷所使用的時間比例。這個值間接指出產生中斷的硬件設備活動,好比網絡變化。這個計數器顯著增長的話表示硬件可能存在問題。

System/Processor Queue Length
閥值:平均值持續大於2那麼表示CPU存在瓶頸
含義:若是就緒的任務超過處理能力線程就會被放進隊列。處理器隊列是就緒可是未能被處理器執行的線程的集合,這是由於另一個線程正在執行狀態。持續或者反覆發生2個以上的隊列則明確的表示存在處理器瓶頸。你也能經過減小併發取得更大的吞吐量。
你能夠結合Processor/% Processor Time來決定增長CPU的話你的程序是否可以受益。即便在多處理器的電腦上,對於CPU時間也是單隊列。所以,在多處理器電腦上,Processor Queue Length (PQL)的值除以用來處理負載的CPU個數。
若是CPU很是忙(90%以上的使用率),PQL的平均值也持續大於2/CPU, 這是應該存在CPU瓶頸並且可以從更多的CPU中受益。或者,你能夠減小線程的數量以及增長應用程序層的隊列。這會引發少許的Context Switching,可是少量的Context Switching對於減小CPU負載是有好處的。PQL大於2可是CPU使用率卻不高的的常見緣由是對CPU時間的請求隨機到達並且線程卻從處理器申請到不對稱的CPU時間。這意味着處理器並非瓶頸,而你的線程邏輯是須要改進的。

SQLServer:SQL Statistics/Auto-Param Attempts/sec
每秒的自動參數化嘗試數。 其總數應爲失敗的、安全的和不安全的自動參數化嘗試之和。 當 SQL Server 實例嘗試經過將某些文字替換爲參數來參數化 Transact-SQL 請求時,就會進行自動參數化,這樣能夠對多個類似的請求再次使用保存在緩存中的執行計劃。 請注意,在更新版本的 SQL Server中,自動參數化也稱爲簡單參數化。 此計數器不包括強制參數化。

SQLServer:SQLStatistics/Failed Auto-params/sec
每秒自動參數化嘗試失敗次數。 該值應很小。 請注意,在更高版本的 SQL Server中,自動參數化也稱爲簡單參數化。

SQLServer:SQLStatistics/Batch Requests/sec
每秒收到的 Transact-SQL 命令批數。 這一統計信息受全部約束(如 I/O、用戶數、高速緩存大小、請求的複雜程度等)影響。 批處理請求數值高意味着吞吐量很好。

SQLServer:SQL Statistics/SQLCompilations/sec
 每秒的 SQL 編譯數。 表示編譯代碼路徑被進入的次數。 包括 SQL Server中語句級從新編譯致使的編譯。 當 SQL Server 用戶活動穩定後,該值將達到穩定狀態。

SQLServer:SQL Statistics/SQLRe-Compilations/sec
每秒語句從新編譯的次數。 計算觸發語句從新編譯的次數。 通常來講,這個數值最好較小。
sql

相關文章
相關標籤/搜索