SQL Server添加MDW性能監控報表

10.2 Data Collector與MDW

Data Collection功能是SQL SERVER 2005版本提供的數據庫監控報表的功能,經過定時地對數據庫的語句運行狀況,服務器各類資源的監控等信息的記錄收集起來,並將數據保存在MDW(Management Data Warehouse,管理數據倉庫)中,MDW爲用戶們提供了很是方便的性能分配報表。 sql

10.2.1 MDW的配置

開啓SQL SERVER的MDW功能,要求數據庫須要開啓SQL Server 表明(Agent)服務。配置MDW須要在SQL Server管理界面(SSMS)的對象服務器配置下的管理子項中右鍵配置,以下圖10-6中所示, 數據庫

圖10-6 開啓MDW嚮導 緩存

MDW的配置分爲兩個步驟,首先須要建立一個MDW,如圖中所示Create or upgrade a management data warehouse選項配置,根據嚮導,配置完成之後。而後,還須要開啓data collection的功能。如圖中第二個選項Set up data collection,根據嚮導將data collection開啓之後,咱們會發現,在Agent服務中多出來幾個調度任務,以下圖10-7中所示: 服務器

圖10-7 MDW的Agent做業 網絡

這些任務主要負責監控信息的採集以及數據的上傳。在通過一段時間的數據採集後,能夠在MDW的數據庫中,查看到具體的報表信息了。 session

10.2.2 查看性能報表

圖10-8 打開MDW報表 併發

在MDW數據庫中,點擊右鍵,作如上圖中的選擇能夠打開Data Collection的報表信息,能夠從報表中,獲取數據庫實例在監控開啓期間的相關資源開銷,各類調度等待的信息以及服務器的活躍狀態(包括批處理數據,請求數等)。同時MDW報表支持鑽取的功能,能夠很方便地跟蹤定位到服務器故障點的詳細信息。 函數

如圖10-9中所示,經過Server Activity概略圖最上方一塊硬件概況,能夠很直觀地查看到服務器的CPU,內存,IO以及網絡的運行狀況,同時,依據操做系統的資源使用狀況以及SQL SERVER實例進程的使用狀況,用不一樣顏色的曲線表示。如圖10-9中所示,淺綠色爲系統資源曲線,淺藍色爲SQL Server進程的資源曲線。其中如CPU資源圖中所示,其以百分比的方式展現,淺藍色和淺綠色曲線已經基本重合,說明服務器的CPU資源幾乎都是SQL Server進程消耗掉的。若是兩條曲線的中間間隔比較明顯,那說明服務器上還有其餘進程在使用服務器的CPU資源,須要對比一下,是否SQL Server受到其餘資源的影響。其餘類型的資源,包括內存的使用狀況,磁盤的IO使用狀況等,都是相似的,只是它們的表示單位有所不一樣。 性能

須要注意的一點就是,內存和磁盤的使用狀況取的都是均值,也就是說,不一樣的時間間隔長度上,相同的時間段內,其數值顯示可能會不同。例如,選擇從早上11點爲開始時間,時間間隔爲4個小時的內存變化以及11點爲開始時間,時間間隔爲12小時內的內存變化。在兩個時間間隔上,早上11點到下午3點這4個小時內的曲線有多是不同的。會有必定的差別,由於它們取的是平均值來構造麴線。 spa

網絡應用曲線比較特殊,它只有系統的網絡使用狀況,沒有爲SQL Server進程單獨獲取一個獨立的曲線,由於Windows系統是沒法 識別網絡應用程序的進程的。

概略圖中間部分,SQL Server Waits展現了實例在時間段內各類不一樣類型的Waite所佔有比例的柱狀圖,能夠迅速地定位到各個不一樣時間點數據庫的資源等待狀況。點擊柱狀圖,或SQL Server Waits的字樣,能夠進入類型等待的詳細狀況列表,如10-9(b)圖中的示例,上面的柱狀圖與概略圖中的同樣,在柱狀圖正文列出了一份列表,點擊列表中的超連接部分,能夠進入更細緻的詳細狀況介紹圖,如10-9(c)圖中所示爲Buffer IO的詳細狀況分析圖。須要注意的是,不一樣的等待類型,其詳細狀況分析圖會不同,在這裏就不一一介紹了,讀者們能夠本身部署一個MDW,而後仔細觀察一下每一個圖表中不一樣的狀況。

最下方SQL Server Activity部分顯示了實例在時間點內的請求數,鏈接數等信息,能夠清晰地看出數據庫的繁忙狀況。能夠很是方便地判斷出服務器的併發狀況。點擊拆線圖或者SQL Server Activity字樣,一樣能夠鑽取到一些更細緻的信息。

(a)

(b)

(c)

圖10-9 MDW報表報表示例

以上報表數據來源於MDW的數據庫,即如圖10-6中所示的嚮導中建立的報表數據存儲庫裏。在一些狀況下,可能報表視圖沒法展示出咱們須要的一些數據。此時,可能須要直接查看MDW中對應表中的數據。如下列出幾個經常使用的數據表的狀況。

snapshots.active_sessions_and_requests

該視圖存儲了動態管理視圖sys.dm_exec_requests以及sys.dm_exec_sessions的一些字段信息,經過該表,能夠得到某些時刻,例如使用字段collection_time過濾出來的某一時刻的在在執行的請求的信息。

snapshots.notable_query_plan

該視圖存儲了動態管理函數sys.dm_exec_query_plans中的執行計劃緩存信息,經過該視圖,能夠將指定的sql_handle的執行計劃打印出來。

snapshots.notable_query_text

該視圖存儲了動態管理函數sys.dm_exec_sql_text中關於執行計劃以及執行語句的偏移量(statement_start_offset以及statement_end_offset)的信息,經過視圖,能夠得到某一時刻請求正在執行的存儲過程對象及語句。

SELECT *

FROM snapshots.active_sessions_and_requests AS asar WITH(NOLOCK)

JOIN snapshots.notable_query_text AS nqt WITH(NOLOCK) ON asar.sql_handle = nqt.sql_handle

JOIN snapshots.notable_query_plan AS nqp WITH(NOLOCK) ON asar.plan_handle=nqp.plan_handle

WHERE asar.collection_time BETWEEN '2013-09-22 10:00:00 +08:00' AND '2013-09-22 22:00:00 +08:00';

代碼清單10-1 經過MDW查詢某一時間段內的請求狀況

如代碼清單10-1中所示,在獲取22日10點到22點的請求執行狀況時,須要注意,collection_time是帶有時區的,因此須要加上後面的+08:00表示獲取是北京時間。

相關文章
相關標籤/搜索