SQL Server Profiler停用 - 替代方案是什么?

25

我正在开发ASP.NET和SQL Server应用程序,有时我会遇到SQL查询的问题,我希望能够看到SQL Server的“响应”,而不仅仅是ASP.NET错误消息(这常常没有多大帮助)。

SQL Server中的Profiler.exe工具可以做到这一点,但我在MSDN上阅读到微软计划弃用该工具。

我们宣布将SQL Server Profiler用于数据库引擎跟踪捕获和跟踪回放的功能进行停用。这些功能将在下一个版本的SQL Server中得到支持,但将在以后的版本中被移除。还未确定特定版本的SQL Server。包含Microsoft SQL Server Trace和Replay对象的Microsoft.SqlServer.Management.Trace命名空间也将被弃用。请注意,不会停用Analysis Services工作负载的SQL Server Profiler,并且将继续得到支持。

http://msdn.microsoft.com/en-us/library/ms181091.aspx

他们没有提到哪个工具会取代profiler.exe。
有人知道更多信息吗?
如果我想查看(最近的?)不成功查询,是否有任何其他替代方法可以使用?

4
它将被扩展事件所取代。 - marc_s
1个回答

33

虽然在接下来的几个版本中继续使用 trace 是安全的,但 Profiler 绝不是答案(这里有一些证据还有这里)。如果你要使用 trace,请使用 一个服务器端追踪。只是不要编写将利用 trace 的新代码,并期望它能够生存超过几个版本。

长期的解决方案是使用扩展事件。一个你应该关注的博客是SQL Server MVP Jonathan Kehayias of SQLskills.com。他已经很好地用通俗易懂的语言解释了扩展事件,并提供了许多可直接使用的示例。他还在PluralSight上提供了很棒的课程(你可以通过Visual Studio Dev Essentials免费获得):

另一个可以学到很多东西的人是Erin Stellato。她已经转到微软了,但她在SQLskills上的博客文章仍然存在,而且非常丰富。


1
刚刚看了Jonathan Kehayias在Pluralsight上关于扩展事件的课程,非常棒。 - user4650451
微软的GUI工具叫什么名字,可以启动、停止、查看和保存扩展事件 - Ian Boyd
3
最新版本的Management Studio现在包括一个名为XE Profiler的类似Profiler的用户界面,您可以从Object Explorer中启动它(如图所示:https://i.stack.imgur.com/tlqfE.png)。 - Aaron Bertrand
@AaronBertrand,当你说“Profiler不是答案”的时候,这句话是一般性的评论还是只适用于问题的上下文环境?如果它是作为一般性的评论,那么我不同意——SQL Profiler通常是找到问题原因的快速方法。也许你的意思是“不要在生产环境中使用Profiler”?有些应用程序可以容忍SQL性能降低,例如在开发人员的机器上进行调试。 - OutstandingBill
@OutstandingBill 如果你有不同的看法也是可以的。由于Profiler已经被弃用,并且有可能会导致机器崩溃,我认为没有理由继续避免使用扩展事件。在开发人员的机器上进行调试并不是一个非常关键的用例;如果这是你唯一知道如何做的事情,那么当你需要在生产机器上进行调试时,你该怎么办呢?为什么不接受新的方式,而是抓住借口坚持旧的方式呢?这听起来就像是只有去杂货店才需要系安全带。 - Aaron Bertrand
抱歉,我一开始误读了你的评论。我理解你的观点。 - OutstandingBill

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