SQL Server Performance Dashboard Reports

SQL Server Performance Dashboard Reports是一組Reporting Services的報表,和SQL Server Management Studio中所介紹的報表一起使用。這些報表允許數據庫管理員快速地確定他們的系統中是否存在瓶頸,瓶頸是否正在發生,捕獲這些附加的診斷數據可能會對解決問題更有幫助。例如,系統正在等待disk IO,這是Dashboard就允許用戶可以快速地查看哪一個session,session中的哪一個查詢計劃,查詢計劃中哪一條語句最消耗IO。

Performance dashboard可以幫助解決一些普遍的性能問題,包括:

-CPU瓶頸問題(什麼查詢最消耗CPU)
-IO瓶頸問題(什麼查詢最消耗IO)
-由查詢優化器產生的索引推薦方案(未使用索引)
-阻塞問題
-Latch競爭問題

SQLServer2005的性能工具Performance Dashboard是新添加到SQLServer2005的並在SP2發佈之後不久就可用的一款擴展工具。具體的安裝參看 [原]安裝SQL Server 2005 Performance Dashboard Reports的技巧。SQL Server 2008/2008 R2/2012的Performance Dashboard報表可以從這裏下載最新的工具包: Microsoft SQL Server 2012 Performance Dashboard Reports

這些捕獲到報表中的信息源於SQL Server的動態管理視圖,它不需要額外的跟蹤或數據捕獲,信息一致可用,所以它是一個不怎麼消耗資源的一種管理服務器的方法。

Reporting Services對於使用Performance Dashboard報表並不是必須要安裝的。

1、下載 SQL Server 2008/2008 R2/2012的Performance Dashboard報表: Microsoft SQL Server 2012 Performance Dashboard Reports ,安裝後在C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Performance Dashboard 下可以找到setup.sql和相關自定義報表。

p_w_picpath

readme裏頭有安裝的方法,幫助文件裏頭有具體的使用方法。

2、開啓SSMS 執行setup.sql

p_w_picpath

3、選擇自定義報表performance_dashboard_main.rdl,載入後即可看到性能分析報表:

p_w_picpath

Performance Dashboard不收集也不存儲任何信息,而是從SQL Server內部取出當前存在的數據。正因如此,大量的數據都是從某一特定時間開始的,但是有時,你會看到一些歷史數據,作爲副產品來查看SQL Server如何工作。歷史數據很有限,但是很有用,我們之後會提到。

我之所以指出這個原因,是因爲你必須手動的刷新Performance Dashboard來獲取你SQL Server最新的活動快照。這也很容易做,只要單擊Performance Dashboard頂端的refresh按鈕就可以了,就像下面這張圖這樣。

現在,我們看看一些Performance Dashboard的主要區域,看看他們能夠告訴我們些什麼。主頁面分五大區塊。

1.查看CPU使用率,如果SQL Server CPU使用率長時間超過80%的話,可能須注意是否I/O造成CPU瓶頸(過度switch)。

System CPU Utilization

對於大多數DBA,System CPU Utilization(系統CPU使用率)圖表非常有用。你能看到至少15分鐘的SQL Server的CPU活動情況,從SQL Server啓動開始,每分鐘一次更新。但是,請注意,如果你剛啓動SQL Server的服務,將沒有CPU的活動圖表,因爲還未滿15分鐘,15分鐘後,你會第一次看到這些數據。而在這裏還想強調的是,CPU的使用率並不是一個精確的數值,而是一個大約值,但是一個大約的值也已經足夠了。在下面的例子中,你會看到一個15分鐘CPU數據,並且每次更新之後,這個圖表依舊顯示的是一段15分鐘長的CPU活動的數據。

Performance Dashboard不僅提供了CPU使用狀況的信息,還提供了許多其他的寶貴信息,我們來繼續看一看。

2.查看目前請求所等待的類型,這裏可以看出有那些資源競爭的情況(如果等待時間過長)。

SQL Server每秒執行成百上千的操作,但它們並不是同時完成的。也就是說,許多活動通常都需要短期的“等待”。實際上,SQL Server利用數百種不同的等待狀態來解決它們的複雜性。作爲一個DBA,我們的目標是將這種等待狀態最小化。等待狀態越多,或者等待時間越長,性能就會越慢。當等待狀態達到正常值的時候,擴展的等待狀態就不在需要,需要將這些狀態鑑別和更正。

SQL Server利用各種DMV來跟蹤這些等待狀態,有趣的是,SQL Server還能收集一些自上次SQL Server服務重啓開始的一些等待狀態的歷史數據,這些歷史數據和當前的等待狀態信息都是對DBA非常有用的。

在初始的Performance Dashboard屏幕中,你可能會看到下面的圖標。注意,只是“可能”看到。這是因爲這個圖表顯示的是Performance Dashboard上次刷新時的當前等待狀態的信息。很可能當時沒有等待狀態,如果如此,那就不會再屏幕中出現這類圖表。

3.查看目前活動相關信息,這裏你可以快速看出快取擊中率的數值(建議>90%)。

圖中的User Requests和User Sessions,這些數據都是Performance Dashboard在上次更新時獲取的。另外,elapsed time(消逝時間)和cache hit ratio(緩存觸發率)的值指的是之前的全部完成的請求的消逝時間總和。點擊藍色的User Requests 或 User Sessions你可以看到下拉的信息。當點擊User Requests,你可以看到下圖的信息,顯示出上次更新時的當前用戶請求。(與之前的部分圖一樣,爲了省略顯示,這張圖被截斷,真實的圖標有更多的信息。)

當你點擊User Sessions時,你可以看到下列的報表:

這個報表與Management Studio的Current Activity顯示的信息比較相似,但它能提供更多的信息。(同樣,這個報表也是被截斷的,真實的報表比這更長。)

4.查看相關歷史信息,這裏的數據我認爲相當有價值,可以看出I/O Read/Writes狀況,以及何種等待類型最多。還有可以找出最耗時的查詢(依CPU、運行時間...等)。

雖然Performance Dashboard並不收集歷史數據,但是一些SQL Server的DMV是收集的,我們可以看下圖,這些是利用DMV的數據顯示出的歷史數據:Waits, IO Statistics, 和 Expensive Queries。

Waits

這個報表顯示了一個自SQL Server實例重新啓動開始發生的所有等待狀態的一個歷史數據的快照。

在上述的例子中,我們能看到sleep wait state和this SQL Server實例記錄的Network IO類別的最大等待狀態。如果想查看更多的詳細信息,可以展開這些狀態類別。這些信息都非常強大,它可以幫助我們去確定這種等待狀態是不是對SQL Server的性能有消極的影響。

IO Statistics

這些歷史報表告訴你哪個數據庫最消耗IO,以及一些其他的附加信息。下面的截圖是報表的頂端部分,總結的數據庫的IO情況。

下圖是這個報表的另一個部分,能看查看哪一個對象最消耗IO。另外,如果發現了有出現missing index的情況,你可以下拉報表來查看具體是哪個missing index,這樣就可以把它重新加上。

Expensive Queries

這部分提供了我們在其他查詢報表所看到的相似的信息,但它顯示的是SQL Server中當前被加入緩存的那些查詢語句。這樣我們就能給我們更好的展示,來看我們的服務器究竟發生了什麼。有六種不同方式的結果排序選項(每一種都將形成一個單獨的報表)。你也可以下拉查看詳細信息。

5.綜合信息可以快速瀏覽如數據庫總覽、擴充事件..等。

Active Traces

Active Traces鑑別了當前SQL Server實例中所執行的所有trace。即使你不能運行Profiler Trace,你依然可以看到這個active trace信息。爲什麼呢?這是因爲SQL Server一直在自動地爲你跟蹤這些事件,當你在這個實力上執行一個Profiler Trace是,你會看到如下的信息。

Databases

Databases的報表提供了一個當前實例中數據庫的快速瀏覽,可以快速查看這些主要數據庫的配置選項。

Missing Indexes

最後一個報表列出了SQL Server所確定的所有missing index。這個分析沒有Database Engine Tuning Advisor所做的那麼全面,但它顯示出了明顯的missing index。其實我們只是希望在這個列表中不出現任何的missing index,這代表我們的數據庫設計的更好。

最後提醒一下各位:

這些統計信息的數據源大多來自於 SQL Server 裏所謂的 動態管理檢視 ( DMV ),這些信息是從數據庫實體 (Instance) 啓動之後所累積的動態信息,所以 SQL Server 跑得越久,所收集到的信息越精準,也越能找出在啓動 SQL Server 服務之後到現在所累積的效能問題有哪些。

相關文章:

如何在 SQL 2008 安裝 Performance Dashboard Reports

[SQL]SQL Server 2008使用Extended Events SSMS Addin + Performance Dashboard Reports來監看系統

善用Performance Dashboard Reports


摘自:http://www.cnblogs.com/shanyou/archive/2013/02/12/2910232.html


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章