2010-03-22 83 views
1

我可能從錯誤的角度來解決這個問題,但是我正在考慮的是SQl服務器的某種性能監視工具,它以類似於代碼性能工具的方式工作,例如,我希望看到每個存儲過程被調用的次數,平均執行時間以及可能的各種資源使用情況(如緩存/索引利用率,重新獲得磁盤訪問和表掃描等)的輸出。尋找SQL Server性能監控工具

只要我可以告訴SQL Server附帶的性能監視器只記錄各種調用,但不報告他正在查找的variosu統計信息。可能我只需要一個工具來分析日誌輸出?

回答

0

原來,SQL Server Profiler根據存儲的proc名稱報告存儲的proc調用的持續時間,它只是知道要監聽哪些事件的基礎知識。 SP_Counts模板似乎是報告存儲過程名稱的最佳起點。如果您改用「已完成」而不是「已啓動」事件,則可以選擇報告每次通話的持續時間。從那裏您可以將記錄的跟蹤保存到XML文件中,並編寫XPath/XQuery來總結每個存儲過程中花費的總和平均值。最後,我寫了一個小小的C#應用​​程序來清理數據並將其輸出到CSV文件,以便我可以在Excel電子表格中查看它並按各種列進行排序 - 例如,平均最慢的存儲過程,大多數總時間存儲過程,以及最高調用次數的SP。

1

SQL Server Profiler的確給你想要的東西,雖然可能不是以非常直觀的方式。

要監視存儲過程,可以跟蹤SP:Completed事件,並觀察CPU使用情況,I/O讀取/寫入情況和持續時間以獲取所需內容。對於高速緩存監視,您需要監視SP:CacheHit,SP:CacheInsert,SP:CacheMissSP:CacheRemove事件。

如果你想要另一個工具,我可以強烈推薦Quest's Performance Analysis for SQL Server,它給你你想要的和更多的易於使用的軟件包。