收集並儲存效能監控器資料到SQL Server表
來源:互聯網
上載者:User
server|監控|資料|效能
收集並儲存效能監控器資料到SQL Server表
?
?
當我們需要監控資料庫SQL Server伺服器效能的時候,有些資料庫管理員可能會選擇Windows為我們提供的‘效能’監控器來操作(開始菜單à管理工具à效能)。
如果可以將效能監控器採集到的資料記錄到SQL Server 的資料庫表中去,很多工作對我們來說也許方便得多。
開啟效能監控器
點擊開始菜單à運行à執行(perfmon)
或者
開始菜單à管理工具à效能
?
就可以看到下面的畫面了
?
定義效能監控器LOG
??????? ?如果要設定監控器的LOG,首先展開樹形結構的效能日誌和警示,會出現三個你可以選擇的項目(計數器日誌,追蹤記錄檔,警示),現在我們先設定計數器日誌。右鍵點擊計數器日誌的這個節點,從彈出的菜單中選擇建立日誌設定,填寫日誌名稱並確定。就會談出下面的畫面:
??? 我填寫的名稱是SQL Server 所以當前的記錄檔名會顯示:
C:\Perflogs QL_Server_000001.blg
??????? 下一步就是要定義你將要收集或者說將要監控的項目。我們會選擇幾個不同的監控項目作為這個我們建立的這個LOG的記錄。首先我們先選擇Processor Time。點擊添加按鈕,選擇%Processor Time之後點擊添加,就如同下面這張同我們看到的那樣。
????? ?下面我們選擇記憶體的監控,在效能物件下拉框中選擇Memory,然後再下面計數器部分選擇Pages/sec計數並點擊添加,如下圖
??????? 之後我們按照上面的步驟重複的操作,把我們需要監控的項目加入到列表中去。在將所有要監控的項目都添加完成後,點擊關閉按鈕就可以了,可以用下面的圖作參考:
???? 如同上面途中我們看到的樣子,我選擇了許多不同的監控項目。我在下面給大家羅列以下:
\\CN-BJ-TIGER\Memory\Available Bytes
\\CN-BJ-TIGER\Process(sqlservr)\Page Faults/sec
\\CN-BJ-TIGER\Process(sqlservr)\Working Set
\\CN-BJ-TIGER\Processor(_Total)\%Priviledged Time
\\CN-BJ-TIGER\Processor(_Total)\%Processor Time
\\CN-BJ-TIGER\Processor(_Total)\%User Time
\\CN-BJ-TIGER QLServer:Buffer Manager\Buffer cache hit ratio
\\CN-BJ-TIGER QLServer:General Statistics\User Connections
\\CN-BJ-TIGER QLServer:Memeory Manager\Total Server Memory (KB)
\\CN-BJ-TIGER QLServer:SQL Statistics\Batch Request/sec
\\CN-BJ-TIGER ystem\Context Switches/sec
\\CN-BJ-TIGER ystem\Processor Queue Length
?
上面表中每一個項目都分成三個段表示,第一段表示伺服器名稱,第二段表示要監控的對象是什麼,第三段表示監控的項目。
選擇完全部的監控項目之後,接下來還要繼續作一些事情才可以完成對LOG的定義。我們需要考慮一下,我們對資料的採樣間隔,用上面的圖來舉例子,可以在對話方塊的下方設定採樣的間隔時間和時間單位(初始是15s)。不過一般情況下15s不會適合所有的監控項目,所以要根據每個不同伺服器的配置來決定具體的間隔時間,因為監控室必定要消耗伺服器資源的,而且伺服器也會產生大量的資料收集工作。
上面的工作做完後,現在開始設定LOG檔案的儲存路徑和方式以及執行的時間計劃。點擊記錄檔選項卡:
為了比較容易的將檔案匯入到SQL Server 中,需要選擇有逗號分割形式的文字檔來儲存資訊。這樣的話,可以選擇 文字檔 – CSV? 的格式來儲存LOG檔案。
??????? 再run.bat中鍵入
?????????????????????? isql -E -d pubs -i c:\perform\go.sql
??????? 儲存
?
??????? 然後建立SQL指令檔如下---我建立的SQL指令檔名是go.sql
????????????? set ansi_nulls on
set ansi_warnings on
?
select * into Perflog
from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Text;HDR=NO;DATABASE=c:\perflogs\', sql_server_000001#csv)
?
set ansi_nulls off
set ansi_warnings off
go
?
之前要改變一下資料庫伺服器的串連設定
將? ANSI warning
???? ?ANSI nulls
兩個選項選中
好到這裡,我們就可以從PUBS資料庫中的Perflog表中找到監控的記錄了