SQL Server添加MDW性能监控报表
10.2 Data Collector與MDW
Data Collection功能是SQL SERVER 2005版本提供的數據庫監控報表的功能,通過定時地對數據庫的語句運行情況,服務器各種資源的監控等信息的記錄收集起來,并將數據保存在MDW(Management Data Warehouse,管理數據倉庫)中,MDW為用戶們提供了非常方便的性能分配報表。
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的數據庫中,查看到具體的報表信息了。
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個小時內的曲線有可能是不一樣的。會有一定的差異,因為它們取的是平均值來構造曲線。
網絡應用曲線比較特殊,它只有系統的網絡使用情況,沒有為SQL Server進程單獨獲取一個獨立的曲線,因為Windows系統是無法 識別網絡應用程序的進程的。
概略圖中間部分,SQL Server Waits展示了實例在時間段內各種不同類型的Waite所占有比例的柱狀圖,可以迅速地定位到各個不同時間點數據庫的資源等待情況。點擊柱狀圖,或SQL Server Waits的字樣,可以進入類型等待的詳細情況列表,如10-9(b)圖中的示例,上面的柱狀圖與概略圖中的一樣,在柱狀圖正文列出了一份列表,點擊列表中的超鏈接部分,可以進入更細致的詳細情況介紹圖,如10-9(c)圖中所示為Buffer IO的詳細情況分析圖。需要注意的是,不同的等待類型,其詳細情況分析圖會不一樣,在這里就不一一介紹了,讀者們可以自己部署一個MDW,然后仔細觀察一下每個圖表中不同的情況。
最下方SQL Server Activity部分顯示了實例在時間點內的請求數,連接數等信息,可以清晰地看出數據庫的繁忙情況??梢苑浅7奖愕嘏袛喑龇掌鞯牟l情況。點擊拆線圖或者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表示獲取是北京時間。
轉載于:https://www.cnblogs.com/laoyumi/p/4028145.html
總結
以上是生活随笔為你收集整理的SQL Server添加MDW性能监控报表的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 千兆路由器什么牌子好?家用千兆路由器20
- 下一篇: Easyui and mvc 项目3书籍
