文章出處

SQL Server2016 新功能實時查詢統計信息

 

很多時候有這樣的場景,開發抱怨DBA沒有調優好數據庫,DBA抱怨開發寫的程序代碼差,因此,DBA和開發都成為了死對頭,無法真正排查問題。

DBA只能使用Windows性能監視器,SQL Server內置的活動監視器、SQL Trace、SQL Profiler、Performance Dashboard等工具,或者使用執行計劃來查看查詢成本。

為了讓DBA有更多有效工具排查問題,SQL Server2016推出了很多新功能,其中一項功能是 Live Query Statistics(LQS 實時查詢統計信息),這個功能顯示了以往不容易看到的執行時期的內容,例如查詢期間的統計信息,這個功能可以幫助DBA找出長時間查詢的真正問題根源(root cause)

 


使用實時統計查詢

使用實時查詢統計非常簡單,只需要在SSMS的工具列,分別按一下【包括實際的執行計劃】【包括實時查詢統計信息】圖標,并執行您的查詢就可以了。

現在可以在【實時查詢統計信息】tab頁看到查詢所用到的運算符,正在統計查詢耗費時間,另外在tab頁面的左上角可以看到整個查詢的完成度

使用【實時查詢統計信息】會對性能有一定影響,當查詢比較復雜的時候,所需等待時間也會增加,并且整個過程也會耗用不少CPU資源,因此使用的時機必須要審慎,否則問題未查出來,反而造成數據庫更大的壓力。

 

提示
如果只使用了【包括實時查詢統計信息】,而未打開【包括實際執行計劃】,那么在【包括實時查詢統計信息】的tab頁所看到的經過時間和完成率都會是0

不會顯示消耗時間

 


在執行計劃中向下鉆取(drill down)

在實時查詢統計信息執行過程中,可以點擊任何一個執行計劃中的運算符,查看運算符的統計信息,例如:消耗時間(Elapsed time)、運算符的處理進度(operator progress)、目前CPU使用率,根據這些信息幫助DBA找出瓶頸所在


另外,當查詢依然在執行時可以切換到活動監視器,在新增加的【活動的耗費大量資源的查詢】tab頁里能看到當前正在活動的耗時查詢,直到該查詢執行完畢

 

實時查詢統計信息原理

實時查詢統計信息背后的原理其實是通過DMV動態管理視圖獲取信息,然后呈現在tab頁面上,從而讓DBA可以不需要自行查詢這些DMV,直接以圖形化界面來快速找到長時間執行的查詢是在哪個環節耗費最多時間和成本。

 


下面是實時查詢統計信息所使用的DMV,當然自己也可以通過下面的DMV來查詢獲得需要的統計信息

SELECT * FROM  sys.dm_exec_requests
SELECT * FROM sys.dm_exec_sql_text
SELECT * FROM sys.dm_exec_query_memory_grants
SELECT * FROM sys.dm_exec_query_plan
SELECT * FROM sys.dm_exec_query_profiles

 

限制

目前實時查詢統計信息尚不支持下列功能

列存儲索引(columnstore indexes)
內存優化表(memory optimized tables)
本地編譯存儲過程(Natively compiled stored procedures)

 

 

功能截圖

 

更多SQL Server2016好用功能敬請期待o(∩_∩)o 


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()