-
sql语句大全之一款快速识别最慢语句的性能分析
ClearTrace 能干啥
当我们的数据库服务器在某段业务高峰年期间,周期性出现如CPU接近 100%、内存耗尽、IO量大等问题时候,作为维护人员这时候压力很大,在做一般性排除后仍然没有找到原因。当我们需要进一步深入到语句分析层面找问题根源时,ClearTrace这款工具正好可以帮上忙。 通过该工具可以识别收集性能数据的这段时间,那类语句耗费系统资源最多,帮助快速定位性能瓶颈根源,处理棘手的性能问题。
小贴士:
在使用ClearTrace工具前,需要通过SQL Profiles或Trace脚本实时收集一段时间性能数据,内容至少包括RPC:完成和SQL:BatchCompleted事件和TextData、CPU、读、写和持续时间列。并保存为.trc文件。
ClearTrace特点
标准化SQL语句
ClearTrace "标准化" SQL 语句 ,消除SQL语句参数等不一致的语句,并加以合并为“同一类型”的语句。具体有以下特点:
- 所有的数值、字符串和日期常数转换为一个占位符 ,“#”表示
- 抓取的预备SQL显示为实际语句执行,不做任何更改
- 服务器端游标与“{光标}”前缀,这样他们就可以被识别和移除
- 抓取的sp_executesql显示实际执行的SQL语句,不做任何更改
- 抓取的存储过程名称标注为RPC:完成事件
举个例子:
捕获到二个语句SQL1、SQL2,注意语句的主体部分都一样,条件等号右边参数值不一样
SQL1:Select * From qryLinksByNewsletterID Where NewsletterID=19 SQL2: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 ,谢谢。