SQL server事件探查器快速入门
当使用SQL服务器时,您可能会遇到它运行不够快的情况。 虽然这可能有很多原因,但是有一些工具可以帮助你追踪幕后发生的事情。
SQL Server管理工作室的SQL服务器事件探查器(或简称事件探查器(是一种工具,可用于监视数据库上运行的查询。
在这篇博文中,我将简要演示一下SQL服务器事件探查器工具。 我将向您展示如何关注针对您的数据库运行的所有查询,以及如何使用过滤器将您的搜索范围缩小到运行速度较慢的查询。
SQL服务器事件探查器(或简称事件探查器(是一种工具,它可以帮助监视数据库中正在运行的所有查询。 这使您可以看到许多信息,包括中央处理器时间、读、写、持实时同步数据库 续时间,甚至是与参数一起调用的文本或存储过程。
最后一部分可能特别有用。 当您看到一个运行时间特别长的存储过程时,您总是可以复制该部分(它将包含查询及其参数(并将其粘贴到SQL Server管理工作室中。 这样做的好处是,您可以用相同的参数运行相同的存储过程,并获得一个执行计划来告诉您是什么在减慢速度。
首先,我们需要打开一个探查器会话。 有两种方法可以做到这一点。 如果您已经打开了SQL服务器管理工作室,那么您可以转到 工具 菜单栏上的下拉菜单并打开 SQL Server事件探查器。
另一种方法是直接从窗口菜单打开探查器,因为它可以作为一个独立的应用程序运行,无需SSMS .
这两种方法中的任何一种都可以正常打开探查器 连接到服务器 登录页面。 你应该已经有一个登录,因为你应该在这个数据库工作。 一旦你通过了登录页面,你会得到一个 跟踪属性 佩奇。
跟踪属性
第一个标签(一般(通常可以忽略,如果你只是想做一个快速跟踪某事。 但是如果你是一个更频繁的用户,这个标签允许你设置几个选项。
模板是预定义的跟踪,要么作为内置模板随探查器一起提供,要么由其他人在之前的会话中设置。
保存到文件/表格 允许你这么做。 您可以将跟踪保存到文件或表中,供以后查看。 请注意,如果您愿意,也可以手动保存您的跟踪。
启用跟踪停止时间 允许您设置探查器停止的日期/时间。 这是一个长时间运行的跟踪的好选择,您可能不想在一个繁重的负载期间运行。 别忘了,运行仿形铣床确实会给数据库增加一些额外的开销,所以让它一直运行不是最好的主意。
选择事件
最后一个标签, 事件选择,允许我们选择所有我们想看的实际事件。
如果您从上一个选项卡中选择了一个模板(或者如果您只是在它们之间循环),您会注意到有许多事件需要注意。 当然,总会有 显示所有事件 复选框,但如果您只是在寻找运行速度较慢的查询,这可能会让人不知所措。
在大多数情况下,我只是简单地寻找运行缓慢的查询,我将使用 存储过程 事件以及 TSQL 事件。 你甚至可以把 锁 重大事件。
缩小我们的搜索范围
在我们点击奔跑之前,我们还需要做一些事情来缩小搜索范围。
如果您按原样运行跟踪,我们将看到有限的一组内容,但仍然会很多。 有许多查询和进程在运行,其中大多数只需几毫秒。 但是由于毫秒和亚毫秒级的运行查询不是我们想要的,我们需要一种方法来过滤掉它们。 那是 列过滤器 按钮派上了用场。
点击后 列过滤器 按钮,我们得到如下对话框:
这很有帮助,因为它允许我们过滤掉那些会把事情弄乱的行。 如前所述,我们并不是在寻找运行速度已经很快的查询。 (虽然看到它们被调用多少次总是很有趣,但这可能是另一个性能问题……)
如您所见,我们可以过滤几个项目。 出于我们的目的,我们对持续时间感兴趣。 持续时间字段是存储过程运行的时间长度,以毫秒为单位。
因此,如果我们想筛选出运行时间不到一秒钟的存储过程,我们可以设置 大于或等于 值设置为一千,并检查 排除不包含值的行 复选框。
击球后 好的,我们回到我们的 事件选择 屏幕。 在这一点上,我们可以击中 奔跑 并获得如下所示的结果屏幕:
在一个正常的、活跃的数据库中,你会在几秒钟后看到一些东西弹出来,因为总是有大量的流量。 但是,您设置的持续时间值越高,您看到的就越少,因为大多数查询运行得相当快。
这是一个过滤器设置为10毫秒的跟踪结果图像。 请注意,您可以看到持续时间、读取、写入,更重要的是,还可以看到,它告诉我们运行速度比我们的过滤器慢的查询的速度和参数。
在这种情况下,我们只看到超过10毫秒的呼叫,但是您可以将该值设置为适合您的情况。 我通常根据数据库负载从5到10秒钟开始寻找”大鱼“,然后从那里开始工作。
我希望这是有益的和信息丰富的。 如果您有任何问题,请在下面评论。