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

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

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

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

\\

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

\\

1.png

\\

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

\\

2.png

\\

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

\\

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

\\

3.png

\\

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

\\

4.png

\\

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

\\

5.png

\\

感兴趣的读者可以下载试用,免费试用期为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好读者\")。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/289092.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React Native之函数作为参数传递给另外一个函数去调用

1 用法 我们一般喜欢把js里面的函数作为参数传递给另外一个函数,然后再调用这个函数,有点像C语言里面的函数指针 2 代码测试 写了一个函数,2个参数分别是函数,然后更具数据决定调用哪个函数 /*** Sample React Native App* https://github.com/facebook/react-native** form…

STL—list

前面我们分析了vector&#xff0c;这篇介绍STL中另一个重要的容器list list的设计 list由三部分构成&#xff1a;list节点、list迭代器、list本身 list节点 list是一个双向链表&#xff0c;所以其list节点中有前后两个指针。如下&#xff1a; // list节点 template <typenam…

C#语法糖 Null 条件运算符 【?.】

例子比如说:我们有一个UserInformation类public class UserInformation{ public string Name { get; set; }public List<string> Address { get; set; }}有下面一段代码,我们获取张三的第一个地址static void Main(string[] args){UserInformation user new UserInforma…

用单片机测量流体流速的_流量测量的主要方法

电磁流量计由于流量检测的复杂性和多样性&#xff0c;流量检测的方法非常多&#xff0c;常用于工业生产中的有10多种。流量测量与仪表可以分为测量瞬时流量和总流量两类。生产过程中流量大多作为监控参数&#xff0c;测量的是瞬时流量&#xff0c;但在物料平衡和能源计量的贸易…

C#帮助控件HelpProvider的使用

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;namespace 帮助控件的使用 {public partial class Form1 : Form{public Form1(…

mysql申请审核系统_Mysql审核工具archery

Mysql审核工具archery系统&#xff1a;Centos6.8ip:192.168.122.150安装Python和virtualenv编译安装[rootwww ~]# yum install wget gcc make zlib-devel openssl openssl-devel[rootwww src]# wget "https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz"[…

iOS——Core Animation 知识摘抄(二)

阴影 主要是shadowOpacity 、shadowColor、shadowOffset和shadowRadius四个属性 shadowPath属性 我们已经知道图层阴影并不总是方的&#xff0c;而是从图层内容的形状继承而来。这看上去不错&#xff0c;但是实时计算阴影也是一个非常消耗资源的&#xff0c;尤其是图层有多个子…

Blazor University (11)组件 — 替换子组件的属性

原文链接&#xff1a;https://blazor-university.com/components/replacing-attributes-on-child-components/替换子组件的属性源代码[1]到目前为止&#xff0c;我们已经了解了如何创建代码生成的属性[2]&#xff0c;以及如何捕获意外参数[3]。除了这两种技术之外&#xff0c;B…

HTTPS实现原理

HTTPS实现原理 HTTPS&#xff08;全称&#xff1a;Hypertext Transfer Protocol over Secure Socket Layer&#xff09;&#xff0c;是以安全为目标的HTTP通道&#xff0c;简单讲是HTTP的安全版。即HTTP下加入SSL层&#xff0c;HTTPS的安全基础是SSL。其所用的端口号是443。…

Android之在ubuntu上过滤多条关键字日志

1 问题 比如我们在查问题的时候,需要过滤多个关键字,我平时的做法是一个终端执行下面的命令,然后几个关键字就几个终端,切换来切换去不方便看日志 adb logcat | grep **** 2 改进办法 今天看到同事用了grep -E,我们可以通过-E这个参数过滤多个关键字,比如 adb logcat | gre…

C#使用ServiceController控制windows服务

C#中,使用ServiceController类控制windows服务,使用之前要先添加引用:System.ServiceProcess,然后在命名空间中引用:using System.ServiceProcess。下面举例获取本机的所有已安装的Windows服务和应用,然后查找某一应用活服务是否已经安装。 代码: using System; using S…

电信aep平台是什么意思_江苏天鼎证券:股票平台跳水是什么意思?股票为什么会跳水?...

相信很多新手在刚玩股票的时候会遇到很多的专业的基础知识不能理解&#xff0c;比如什么是跳水?为什么会跳水呢?接下来就为大家详细来说股票的跳水以及为何会跳水。一、股票平台跳水是什么意思?股票跳水通常指股价在较短的时间内&#xff0c;出现从高位下降到低位的现象。出…

设计模式六大原则(5):迪米特法则

设计模式六大原则&#xff08;5&#xff09;&#xff1a;迪米特法则 定义&#xff1a;一个对象应该对其他对象保持最少的了解。 问题由来&#xff1a;类与类之间的关系越密切&#xff0c;耦合度越大&#xff0c;当一个类发生改变时&#xff0c;对另一个类的影响也越大。 解决方…

Android之非root手机run-as命令获取debug版本apk里面的数据(shared_prefs文件,lib下面的so,数据库文件)

1 问题 非root手机想要获取debug版本的apk里面的数据(shared_prefs文件,lib下面的so,数据库文件) 2 直接用run-as命令 adb shellrun-as package-name 然后就直接进入当前apk目录了,比如 如下 /data/data/packageName 我们可以看到很多文件执行命令ls -al命令,显示结果如…

mysql mgr简介_MySQL Group Replication(MGR)使用简介与注意事项

MySQL Group Replication(MGR)是MySQL官方在5.7.17版本引进的一个数据库高可用与高扩展的解决方案&#xff0c;以插件形式提供。MGR基于分布式paxos协议&#xff0c;实现组复制&#xff0c;保证数据一致性。内置故障检测和自动选主功能&#xff0c;只要不是集群中的大多数节点都…

css改变谷歌浏览器的滚动条样式

详细内容请点击 /*---滚动条默认显示样式--*/::-webkit-scrollbar-thumb{height:50px;outline-offset:-2px;outline:2px solid #fff;-webkit-border-radius:4px;border: 2px solid #fff;}/*---鼠标点击滚动条显示样式--*/::-webkit-scrollbar-thumb:hover{height:50px;-webkit-…

C#创建PDF文档

说明:本实例用到了第三方组件ICSharpCode.SharpZipLib.dll、itextsharp.dll,该组件可到网上下载。 代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text…

【矩阵乘法】OpenJ_POJ - C17F - A Simple Math Problem

算(74*sqrt(3))^n的整数部分&#xff08;mod 1e97&#xff09;。 容易想到矩乘快速幂&#xff0c;但是怎么算整数部分呢&#xff1f; (74*sqrt(3))^n一定可以写成ab*sqrt(3)&#xff0c;同理(7-4*sqrt(3))^n一定可以写成a-b*sqrt(3)&#xff0c;于是&#xff0c; (74*sqrt(3))^…

如果通过 C# 实现对象的深复制 ?

咨询区 NakedBrunch我想实现 引用类型对象 之间的深复制&#xff0c;也就是在新的对象上修改不会影响到老的对象&#xff0c;我用了 C# 提供的 Clone 方法。MyObject myObj GetMyObj(); // Create and fill a new object MyObject newObj myObj.Clone();但貌似这样行不通&…

centos安装与配置R语言

Linux下安装R语言 一、编译安装 由于采用编译安装&#xff0c;所以需要用到gcc编译环境&#xff0c;在编译前check文件时还会用到libXt-devel和readline-devel两个依赖&#xff0c;所以在编译R语言源码时先将这些工具和依赖包准备好。readline-devel 也可以不安装&#xff0c;不…