我可能從錯誤的角度來解決這個問題,但是我正在考慮的是SQl服務器的某種性能監視工具,它以類似於代碼性能工具的方式工作,例如,我希望看到每個存儲過程被調用的次數,平均執行時間以及可能的各種資源使用情況(如緩存/索引利用率,重新獲得磁盤訪問和表掃描等)的輸出。尋找SQL Server性能監控工具
只要我可以告訴SQL Server附帶的性能監視器只記錄各種調用,但不報告他正在查找的variosu統計信息。可能我只需要一個工具來分析日誌輸出?
我可能從錯誤的角度來解決這個問題,但是我正在考慮的是SQl服務器的某種性能監視工具,它以類似於代碼性能工具的方式工作,例如,我希望看到每個存儲過程被調用的次數,平均執行時間以及可能的各種資源使用情況(如緩存/索引利用率,重新獲得磁盤訪問和表掃描等)的輸出。尋找SQL Server性能監控工具
只要我可以告訴SQL Server附帶的性能監視器只記錄各種調用,但不報告他正在查找的variosu統計信息。可能我只需要一個工具來分析日誌輸出?
原來,SQL Server Profiler根據存儲的proc名稱報告存儲的proc調用的持續時間,它只是知道要監聽哪些事件的基礎知識。 SP_Counts模板似乎是報告存儲過程名稱的最佳起點。如果您改用「已完成」而不是「已啓動」事件,則可以選擇報告每次通話的持續時間。從那裏您可以將記錄的跟蹤保存到XML文件中,並編寫XPath/XQuery來總結每個存儲過程中花費的總和平均值。最後,我寫了一個小小的C#應用程序來清理數據並將其輸出到CSV文件,以便我可以在Excel電子表格中查看它並按各種列進行排序 - 例如,平均最慢的存儲過程,大多數總時間存儲過程,以及最高調用次數的SP。
SQL Server Profiler的確給你想要的東西,雖然可能不是以非常直觀的方式。
要監視存儲過程,可以跟蹤SP:Completed
事件,並觀察CPU使用情況,I/O讀取/寫入情況和持續時間以獲取所需內容。對於高速緩存監視,您需要監視SP:CacheHit
,SP:CacheInsert
,SP:CacheMiss
和SP:CacheRemove
事件。
如果你想要另一個工具,我可以強烈推薦Quest's Performance Analysis for SQL Server,它給你你想要的和更多的易於使用的軟件包。