总览
SQL Server提供了一个很棒的工具,它使您可以查看SQL Server上正在运行的语句以及收集诸如持续时间,读取次数,写入次数,运行查询的机器等指标。被称为探查器。
Profiler是基于GUI的工具,可运行SQL Server跟踪以捕获上面列出的指标以及其他数据。然后,可以使用此数据来确定SQL Server性能问题与TSQL代码相关的位置。不使用Profiler运行跟踪称为服务器端跟踪。您可以使用TSQL命令创建和启动跟踪,而不必使用GUI。
说明
大多数人开始使用Profiler来运行跟踪,因为GUI非常容易获得跟踪设置并开始运行。一旦了解了使用服务器端跟踪的优点,您将开始更频繁地使用它们,除非您要对在该确切时间发生的问题进行故障排除。
探查器
可以通过以下方式之一启动Profiler工具:
- 在SSMS中,从菜单中选择“工具”>“ SQL Server Profiler”
- 您也可以从Windows菜单启动Profiler
启动Profiler后,您需要:
- 连接到要跟踪的SQL Server实例
- “跟踪属性”窗口将打开,您可以单击“运行”以默认设置启动跟踪
这是收集的数据的示例:
选择事件,列和过滤器
理想情况下,您只希望选择要捕获的事件以及设置过滤器以最大程度地减少返回的数据。如果仅使用标准设置,通常会得到太多信息,并且很难确定发生了什么。
在“事件选择”选项卡下,您可以选择事件,列和设置过滤器,如下所示。
大事记
一个好的起点就是捕获这两个事件。这些将向您显示所有已完成的批次以及与该批次相关的指标。批处理基本上是一组工作,就像存储过程一样,其中包含多个语句。
- 存储过程-RPC:已完成
- TSQL-SQL:BatchCompleted
列
就列而言,只需选择所有列,一旦看到捕获的数据,就可以减少捕获的列数。
筛选器
过滤器使您可以进一步定义捕获的内容。要设置过滤器,请单击“ 列过滤器”。因此,如果您只想捕获特定过程的数据,则可以以SPID为例进行过滤。另一个很好的起点是对“ 持续时间”进行过滤。 我喜欢将值设置为500,以仅显示花费500毫秒或更长时间的语句。同样,这只是一个起点。
有了所需的设置后,就可以运行跟踪。