繁体   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