一款快速识别最慢语句的性能分析工具

2016-12-23 18:52:32来源:cnblogs.com作者:same.zhao人点击

第七城市

ClearTrace 能干啥

当我们的数据库服务器在某段业务高峰年期间,周期性出现如CPU接近 100%、内存耗尽、IO量大等问题时候,作为维护人员这时候压力很大,在做一般性排除后仍然没有找到原因。当我们需要进一步深入到语句分析层面找问题根源时,ClearTrace这款工具正好可以帮上忙。 通过该工具可以识别收集性能数据的这段时间,那类语句耗费系统资源最多,帮助快速定位性能瓶颈根源,处理棘手的性能问题。

小贴士

在使用ClearTrace工具前,需要通过SQL Profiles或Trace脚本实时收集一段时间性能数据,内容至少包括RPC:完成SQL:BatchCompleted事件TextDataCPU、读、写持续时间列。并保存为.trc文件。

  

ClearTrace特点

标准化SQL语句

ClearTrace "标准化" SQL 语句 ,消除SQL语句参数等不一致的语句,并加以合并为“同一类型”的语句。具体有以下特点:

 

  • 所有的数值、字符串和日期常数转换为一个占位符 ,“#”表示
  • 抓取的预备SQL显示为实际语句执行,不做任何更改
  • 服务器端游标与“{光标}”前缀,这样他们就可以被识别和移除
  • 抓取的sp_executesql显示实际执行的SQL语句,不做任何更改
  • 抓取的存储过程名称标注为RPC:完成事件

 举个例子:

捕获到二个语句SQL1、SQL2,注意语句的主体部分都一样,条件等号右边参数值不一样

SQL1:Select * From qryLinksByNewsletterID Where NewsletterID=19SQL2:Select * From qryLinksByNewsletterID Where NewsletterID=10

 

SQLTrace 将SQL1和SQL2都被“标准化为”一类语句SQL(n)

SQL(n):SELECT * FROM QRYLINKSBYNEWSLETTERID WHERE NEWSLETTERID={##}

将类似的语句分组在一起,变成类似上面的标准化语句SQL(n),ClearTrace统计SQL(n)综合所有语句的性能指标的参数值,这些指标值帮助我们识别哪些"同一类型"语句占用较多资源,并可能导致性能问题。

 

ClearTrace整合分析结果

1. 提供较丰富的操作界面

  

 

2. 分析前的查询可通过条件“应用程序”、“主机名”、“登录名”、“事件”筛选。

 

 备注:这里“事件”选择,当选择“Statement”是结果统计的是SQL语句,当选择“Batches”时结果统计的是存储过程。这个选项可以区分是要做语句分析,还是存储过程分析。

选择“Statement”截图

 

 

选择“Batches”截图

 

 

3. 查询结果显示列表,

Item:“标准化”的SQL脚本、#:执行次数、CPU 执行花费时间、Read逻辑读次数、write写次数、Duration总体花费时间,另外可选的还有平均CPU、平均Read、平均write、平均Durations。

关于如何从以上几个参数纬度分析性能问题,网上已经有很多出色文章,这里就不多说了。

 

 

4. 可以通过CPU、 Reads、 Writes 、 Duration、执行次数、平均CPU、平均Reads、 平均Writes 、 平均Duration等进行排序。这是重点,可迅速帮助我们识别哪些语句CPU使用最高、哪些IO使用最多等等,找到性能资源消费的TOP 50还是很方便的。

 

 

其他特性

  • 处理多个Trace文件
  • 处理过的数据存储在数据库中,可随时查询
  • 处理完成的trace文件可归档到指定的目录

 

 

ClearTrace如何操作

第一步,下载ClearTrace工具并解压,无需安装直接双击ClearTrace(不同版本解压后文件数量可能不一样)。

第二步,出现提示创建数据库配置对话框(使用前确认本地要有SQLServer实例安装,并有本地Window账号可访问的权限)。

 

第三步,确定后,按照提示点击菜单Tool->Options,出现配置对话框,填写可连接的SQLServer 实例名,以及创建数据库名字(建议名称:Tracereport),接着提示是否创建,点击“是”即可。

 

第四步,接着选择要分析的trc文件,点击“import Files”,显示导入进度和完成后的摘要信息。

导入进度显示........

 

第五步,导入完成后,直接显示分析查询界面,接下来开始分析语句,找到性能杀手。

 

 

资源

ClearTrace版本下载

ClearTrace 版本Build 47:支持 SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, and SQL Server 2008。

ClearTrace 版本Build 42:支持SQL Server 2012之前版本。

下载地址:http://www.scalesql.com/cleartrace/download.html

论坛

http://forums.sqlteam.com/c/cleartrace. 使用中遇到任何Issue可以提交此处。

 

 

小结:

至此, 相关ClearTrace工具的介绍完毕,内容比较粗显,意义在通过此类工具能给DBA或从事数据库相关工作的朋友在性能调优时有帮助。同样,感谢无私提供这个工具并一直维护、升级新版本的贡献者们,正因有他们才让我们的工作更有效率。

 

 如要转载,请加本文链接并注明出处http://www.cnblogs.com/SameZhao/p/6214364.html 。

第七城市

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台