簡體   English   中英

是否有類似於Java / .Net profilers的SQL Server探查器?

[英]Is there a SQL Server profiler similar to Java/.Net profilers?

我喜歡我可以分析Java / .Net應用程序以查找性能瓶頸或內存問題的方式。 例如, 通過執行時間和每個方法的調用計數 ,可以很容易地找到查看調用樹的性能瓶頸。 在SQL Server中,我有存儲過程,這些過程調用依賴於視圖的其他存儲過程,這類似於調用其他方法的Java / .Net方法。 所以看起來同樣的分析器在這里會非常有用。 但是,我看起來很遠,找不到一個。 是否有人知道這些工具,無論是SQL Server還是其他任何DBMS?

更新:感謝您對SQL Server Profiler的回復,但此工具非常有限。 看一下截圖

查看SQL Nexus工具 這有一些關於識別瓶頸的好報告。 SQL Nexus是一個工具,可以幫助您確定SQL Server性能問題的根本原因。 它加載並分析SQLDiag和PSSDiag收集的性能數據。 它可以大大減少您手動分析數據所花費的時間。

在其中一本Inside SQL 2005書籍(可能是T-SQL查詢)中,有一種很酷的技術,其中作者將SQL事件探查器輸出轉儲到表或excel文件,並應用一個數據透視表以獲得與您的輸出格式類似的輸出屏幕截圖。

我還沒有看到任何內置的SQL工具可以為您提供這種分析。 另一個有用的帖子

除了@Galwegian的評論中提到的SQL Server Profiler之外,還可以在運行查詢時查看執行計划。

http://www.sql-server-performance.com/tips/query_execution_plan_analysis_p1.aspx
http://en.wikipedia.org/wiki/Query_plan

關於SQL Server探查器的另一個完整線程:

識別SQL Server性能問題

我理解你在說什么,但通常情況下,數據庫優化是在更細粒度的水平上進行的。 如果數據庫活動是從客戶端驅動的,那么您應該能夠使用現有的客戶端分析器來獲取每個步驟的總時間,然后解決低掛果(無論是否在數據庫中)。

當您需要詳細分析特定數據庫步驟時,可以使用分析器和跟蹤。

通常,數據庫訪問具有一定的粒度,該粒度是基於個體來解決的,並且數據庫活動與正在進行的所有類型的用戶訪問不是線性的,而程序分析器通常是對代碼的線性路徑進行分析。

如前所述,SQL Server Profiler非常適合檢查您正在編程的參數傳遞給SQL等。但是如果您需要,它將不會顯示執行樹。 為此,我能想到的是使用Show Plan來查看在運行時確切執行的內容。 例如,如果您正在調用調用視圖的sp,則Profiler將僅顯示sp已執行以及傳入了哪些參數。此外,Windows性能監視器具有特定於SQL Server的廣泛運行時性能指標。 您可以在服務器上運行它,也可以遠程連接。

要查找性能瓶頸,可以使用數據庫引擎優化顧問(位於SQL Server Management Studio的“工具”菜單中。它提供了優化查詢的建議,並自動為您優化它們(例如,創建適當的索引等)。

您可以使用S ql Profiler - 它涵蓋了性能分析方面,但我更傾向於將其視為日志記錄工具。 為了診斷性能,您可能只是在查看查詢計划

有sql server profiler,但是盡管它的名字,它根本不是你想要的,你的問題的聲音。 它將向您顯示數據庫中正在進行的所有調用的詳細視圖。 最好對整個應用程序進行故障排除,而不是一次只對一個sproc進行故障排除

聽起來你需要在查詢分析器中查看查詢/ spocs 的執行計划 ,這將為你提供類似於你正在尋找的數據的東西。

正如幾篇回復中所提到的,SQL Profiler將顯示您要求的內容。 您必須要做的是打開事件SP:StmtCompleted,它位於Stored Procedures組中,如果您還想要查詢計划,請啟用Showplan XML Statistics Profile,它位於Performance組中。 最后一個XML計划為您提供了圖形描述,並顯示了計划中每個步驟處理的實際行。

如果分析器正在減慢您的應用程序速度,請盡可能過濾它並考慮轉到服務​​器端跟蹤。

HTH安迪

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM