dotTrace 6.1 帮你理解 SQL 查询如何影响应用性能

  • 谢丽

2015 年 4 月 22 日

话题:数据库语言 & 开发架构APM

dotTrace是 JetBrains 公司旗下的一款.NET 应用程序性能瓶颈检测工具。该工具是ReSharper 旗舰版的一部分,也可以单独安装。近日,dotTrace 6.1发布,主要增加了人们期待已久的 SQL 查询性能分析,开发人员可以通过它获得特定查询的执行时间以及运行该查询的方法。该功能有如下特点:

  • 只能在时间线性能分析模式下进行;
  • 既可以分析独立应用程序的性能,也可以附加到一个已经运行着的进程上;
  • 支持 SQLClient、OLE DB、Entity Framework 和 ODBC 等数据提供程序;
  • 使用 ETW 收集 SQL 事件,实现性能分析开销最小化。

下面让我们看一下 dotTrace 6.1 如何帮助开发人员理解 SQL 查询对应用程序性能的影响。

在界面上,dotTrace 6.1 唯一的变化是在“时间线查看器(Timeline Viewer)”的“间隔过滤器(Interval Filters)”中增加了 SQL Client,如下图所示:

SQL Client 事件指示了应用程序与 SQL 服务器的通信时长,也就是客户端发出请求到收到响应的时间间隔,其中包括打开 / 关闭连接、运行查询及其它 SQL 活动的时间,如下图所示:

从上图可以看出,SQL Client 包含两个子过滤器 SQL Client:Connection String 和 SQL Client:Command,其中前者适用于应用程序使用多个 SQL 连接的情况,后者列出了不同查询耗费的时间。

当 SQL 语句比较长时,开发人员可以打开 SQL 查询窗口进行查看,如下图所示:

双击特定的 SQL 会打开其它所有的过滤器,包括“调用栈(Call Stack)”,如下图所示:

其中,“上层方法(Top Methods)”列出了该语句在不同方法中执行时耗费的时间。选定一个特定的方法,源代码就会显示在“源代码查看器(Source View)”中,如下图所示:

感兴趣的读者可以下载试用,免费试用期为 10 天。需要注意的是,dotTrace 6.1 支持 Visual Studio 2015、2013、2012 和 2010,但与 Visual Studio 中集成的 ReSharper 8.x、dotCover 2.x、dotMemory 4.1 或更低版本不兼容。安装 dotTrace 6.1 会从 Visual Studio 中删除旧版本的 JetBrains .NET 工具。


感谢徐川对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群InfoQ 好读者)。

数据库语言 & 开发架构APM