1.cmd腳本捕獲服務器以及SQL SERVER各個參數數據
我們知道windows有個工具叫做性能計數器(perfmon),他提供服務器和安裝程序的實時圖表展示和分析。但是該圖形化工具的弊端很明顯:
①展示時間段很短,間隔1s,最大值1000s,也就是17分鍾不到,展示的時間跨度很有限。
②如果根據保存的日志展示,一個參數/每小時大約需要上G磁盤空間,這將會非常占用空間,不適合長期保存。此處有興趣的朋友可以測試下保存日志的大小。
那么我們摒棄windows系統的perfmon圖形化,基於僅僅是數據的捕獲是否有辦法呢?答案是肯定的。windows有相關的批處理指令(typeperf)。我們來測試一下,如下:

這樣我們就輕松捕獲了cpu的 Processor Time,typeperf 批處理指令相關參數大家可以去了解下,可以通過模板捕獲並保存到文件,也可以通過SQL SERVER調用xp_cmdshell組件,如下:
①通過參數模板保存到文本文件

不難發現,這些文本文件都是規則的,我們可以通過SQL SERVER的bulk insert工具全部導入到SQL SERVER數據庫中。當然最重要的是相同的性能參數相同的時間跨度上磁盤空間的優勢,舉例10個參數該文本一天86400條數據量大約10M+,是微軟圖形化日志的幾千分之一,這個磁盤空間的節省是很可觀的。
②通過 SQL SERVER調用xp_cmdshell查詢數據

同樣很輕松,這些數據經過簡單字符串處理后插入數據庫,相同參數相同時間跨度和文本文件大小差不多,都很節省空間。
2.各種數據的結構化
這部分其實也很有規律,不難處理,無論是文本文件還是SQL SERVER調用CMD格式都是結構化的或者是半結構化的,通過文本編輯器或者c#程序處理,都可以完成結構化並插入數據庫,如下圖:

3.圖形化展示部分
可以了解下前端的一些知識,jquery和一些圖表框架,我這里是用的highcharts,現在百度的echarts也不錯,並將這些數據可視化

4.數據智能化
做到這里的話,可以做的工作就很多了,實時圖表,告警機制,統計報表。就在以后整理了和大家慢慢分享。
歡迎各位DBA達人的指點和互相交流。