優化 SQL Server CPU 效能

2022-02-17 07:10:02 字數 2107 閱讀 7588

本文將探討在使用sql server時有那些原因可能會造成過度消耗cpu資源,若cpu使用率管理不善或過度使用cpu資源的話,可能會對sql server有明顯的影響,建議您需要增加或更換cpu。。

一般來說檢測資料庫伺服器cpu是否遭遇瓶頸很容易觀察,在使預sql server時,若 cpu持續15分鐘維持在70~80%以上的使用率(排除突發性狀況),且後效能逐漸下降,那麼就可以判定資料庫伺服器可能遭遇cpu瓶頸。本文章提供您參考有那些原因可能會造成過度消耗cpu資源,若cpu使用率管理不善或過度使用cpu資源的話,可能會對sql server有明顯的影響,建議您需要增加或更換cpu了。

主要常被使用來檢測的工具有兩種,第一種『效能監視器 (performance monitor)』,第二種是dmv。

一、 效能監視器(performance monitor)只要在資料庫伺服器機器上,在開始命令框中輸入perfmon按確認鍵即可開啟效能監視器,如下圖1所示。

圖1:效能監視器

使用者可以透過效能監視器中的processor:% processor time計數器來判定cpu的使用量,此值最好不要超出80%,此計數器可監視cpu花費在執行非閒置執行緒上的時間,若狀態大於80%則表示可能必須將 cpu公升級或增加更多的處理器。

另外,也可以使用下列計數器監視cpu的使用狀態:processor / % privileged time相當於處理器花費在執行 microsoft windows 系統核心命令的時間百分比。processor/ %user time相當於處理器花費在執行使用者命令 (如 sql server i/o請求) 的時間百分比。process (sqlserver.exe)/ %processor time每乙個處理序包含所有執行序所花費cpu執行時間總和。

上述資料來源可參考microsoft sql server 檔案庫,有更詳細的說明。  

二、 dmv我們可透過下面兩項dmv相關的cpu統計資料來分析高cpu使用率的原因。

sys.dm_os_wait_stats : 傳回執行中之執行緒所遇到之所有等候的相關資訊sys.dm_os_waiting_tasks:查詢現階段所等待的任務

下面的語句可以查詢排名前10名的各類資源等待的時間比率及查詢結果(如圖2所示)。

圖2:排名前10名的各類資源等待的時間比率查詢結果

與cpu相關的等待型別主要有sos_scheduler_yield、cxpacket和cmemthread。

sys.dm_exec_query_stats 、sys.dm_exec_sql_text:用來查詢高成本cpu語法。

下面的語句可以查詢出最耗時的前50個sql指令。

select top 50

下面的語句可以查詢出最常使用的前50個sql指令。

select top 50

除此之外,資料庫伺服器最常執行的指令應是屬於sql查詢語句。下面語句可以找出占用cpu時間最長的sql查詢指令及查詢結果(如圖3所示)。

圖3:占用cpu時間的top 10查詢結果

我們盡可能的去最佳化這些sql語句。充分地利用查詢計畫等工具,便可以大大地提高查詢效率及改善資料庫伺服器的效能。

本篇文章提供您參考有那些原因可能會造成sql server過度消耗cpu資源,若cpu使用率管理不善或過度使用cpu資源的話,可能會對sql server有明顯的影響。一般來說,在10~15分鐘內,cpu的使用率不應持續超過70%~80%以上,但如果不幸發生這樣的情況時,第一步要先確認cpu資源是否都為sql server所使用,之後再找出高cpu使用率的問題主因。若透過sql tuning(建立索引、改善不良語法及優化常用語法..等)或改變相關設定值後,依然無法降低資料庫伺服器的cpu使用率,那麼可能資料庫伺服器cpu已經遭遇到瓶頸了,建議您需要增加或更換cpu了。

檢視SQLServerCPU占用

看一下當前的資料庫使用者連線有多少 use master go 如果要指定資料庫就把注釋去掉 select from sys.sysprocesses where spid 50 and db name dbid gposdb select count from sys dm exec sessio...

獲取sql server cpu使用率

declare ts now bigint select cpu ticks cpu ticks ms ticks from sys.dm os sys info select top 30 sqlprocessutilization as sql server process cpu utiliz...

斜率優化 單調性優化的相似性

寫了一道單調性優化發現 跟斜率優化很像,而且這道題目感覺質量非常的好。其實斜率優化是基於單調性優化的,但是面對這道題 我竟然連單調性優化都不太會,儘管這個模型非常不好理解。對於每道題 我都會打乙個暴力 程式一般可得40分左右考試的時候我想時間夠的話可以對拍 儘管現在不太會了 dp 考慮 f i 表示...