除了MS Profiler之外,有哪些用于分析SQL Server存储过程的工具?

11

似乎有比 SQL Server Profiler 更好的用于分析 SQL 的工具。设置分析会话需要花费很长时间。我正在寻找更像 VS Profiler 的工具。只需选择一个存储过程,然后使用一组参数运行它,我应该能够获得一个分析图表,显示每个查询、SP 调用和函数调用所花费的时间,并允许我钻取到传入的参数的单个语句。

我看过一些适用于 Oracle 的工具,但我还没有看到适合 SQL Server 的好工具。

3个回答

5
SQL Profiler没有问题。诚然,它有其特点,但仍然是一个好工具。重点在于,优化单个存储过程的价值往往比优化查询工作负载的价值要小。
我没有你的经验,“设置配置文件会花费很长时间”。
在SQL Server 2008及以后的版本中,还有扩展事件, 但是,虽然功能强大,但目前没有简单的GUI。 更新: 如果您已经确定了相关的存储过程,请在SSMS中运行,并打开“实际执行计划”:这将指示为什么需要时间运行。您还可以包括“SET STATISTICS IO ON”,以给出读取/写入执行情况的详细信息。
要检查执行计划,请尝试使用免费的SQL Sentry Plan Explorer

当您为SqlServer开发SQL代码时,您的典型开发环境周期是什么样子的?我目前使用SQL Server Management Studio来开发存储过程,但是我必须转到VS进行任何逐步调试,这有它自己的一套问题,例如无法访问查看临时表或表变量内容。 - bpeikes
如果您想对一个存储过程进行性能分析以查看哪些操作耗时较长,您需要打开分析器,添加筛选器以过滤掉其他可能正在执行的操作,然后从管理工具中运行该存储过程,并将输出转储到表格中进行分析。与我在C++、C#、C甚至Java编写的代码相比,这个开发环境非常原始。 - bpeikes
1
如果你已经知道了所讨论的存储过程(SP),在SSMS中运行时请打开“实际执行计划”,这将显示出运行时间较长的原因。 - Mitch Wheat
虽然没有内置的扩展事件GUI;但是Jonathan Kehayias为扩展事件提供了一个SSMS插件。您可以从以下网址获取:http://extendedeventmanager.codeplex.com/releases/view/30480 - Dharmendar Kumar 'DK'
我曾经使用过“实际执行计划”,它确实有所帮助,但与其他分析工具相比,处理数据并不那么容易。我遇到的主要问题是很难直接过滤出占用最多时间的计划部分。 - bpeikes

1

SQL Server Profiler 是一个很好的工具。在你第一次使用它时可能需要一点时间,但是你很快就会学会事件和所需的输出。

另一种选择是使用系统存储过程和函数。编写一个脚本利用它们给出你想要的输出,然后保存它并每次只更改特定的参数。但是这与在 Profiler 中保存模板非常相似。


0

你可能想要尝试SQL Sentry Plan Explorer。这是比SSMS更易用和全面的工具,可通过执行计划的分析来对查询进行分析。有关更多信息,请参见this answer

值得一提的是,该工具有免费版和专业版,但我发现免费版完全满足我的需求,没有任何限制。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接