ReadTrace
在sql server中有一个profiler的工具用于追踪sql server的执行过程,可以监控sql server的的所有过程。假如我们使用SSMS来操作sql server,那么在profiler中反映的就是ssms这个图形界面所对应的命令。我们在troubleshooting的时候一般都要求客户抓取这 个profiler最终的trace文件,该文件名后缀是.trc。但是我们得到的这个trace文件可能很大,往往有几万甚至几十万条记录,那么我们如 何来分析这个trace呢?这个时候我们就需要引入一些工具,在这里我们用到的是ReadTrace工具,他的下载地址是:RML Utilities for SQL Server。
安 装完毕后,在\Program Files\Microsoft Corporation\RMLUtils\目录下,会有两个小工具叫ReadTrace.exe跟Reporter.exe。假如要分析在'D: \sqltrace\input\sp_trace.trc'里的Trace文件,输出也产生在'D:\sqltrace\output'下,命令可以 是:
D:\Program Files\Microsoft Corporation\RMLUtils>ReadTrace -I"D:\sqltrace\input\sp_trace.trc" -o"D:\sqltrace\output" -f
注 意,这里的参数是区分大小写的。还有一个需要注意到就是输出文件的目录不能跟输入文件是在同一个目录下面,不然会报错,所以我这里用input和 output区分开来。在执行完上面的操作以后,会自动在sql server中创建一个叫做PerfAnalysis的数据库。然后我们点击前面提到的Reporter.exe,就可以查看报告了。
常用的统计有以下三项:
报表工具会根据trace记录里的开始时间、结束时间、CPU、Reads、Writes、Duration等,按时间段做统计,画出一张图来。能帮助管理员了解在不同时间段SQL Server的繁忙程度。
按程序(Application Name)、数据库(Database Id)、用户名(Login Name)排序,找出造成最大SQL工作量的程序/数据库/用户。
按照同一类型的语句,统计最昂贵的语句。在unique batch和unique statement中
SQL Nexus
http://sqlnexus.codeplex.com/
PSSDIAG Data Collection Utility
微软对PSSDIAG的介绍如下:
PSSDIAG is a general purpose diagnostic collection utility that Microsoft Product Support Services uses to collect various logs and data files. PSSDIAG can natively collect Performance Monitor logs, SQL Profiler traces, SQL Server blocking script output, Windows Event Logs, and SQLDIAG output.
PSSDIAG有两个版本,一个版本支持sql server 7.0和sql server 2000,现在最新的版本支持sql server 2005与sql server 2008,但是不知道对sql server 2012的支持如何。本文以sql server 2008 R2为例进行介绍。在安装完PSSDIAG以后,我们打开DiagConfig.exe这个文件进行配置我们需要抓取的trace。可以配置的项很多,但 是默认已经帮我们选择了许多,在我们不是很清楚如何配置的时候,我们可以按默认配置来抓取trace。PSSDIAG的配置界面如下图所示:
在最底下我们可以看到如下描述:
Select the diagnostics you want to collect and click the Save button to save your configuration. During the Save process, a .CAB file is created that can then be used for collecting diagnostic data after extracting the contents. This package will contain the configuration file you’ve just created as well as the scripts, utilities, and other files necessary to collect the diagnostic data that you need to modify.
这就是说在我们配置完需要抓取的内容以后,我们点击左上角的SAVE按钮,此时会询问我们配置文件保存在哪里,如下图所示:
我 们可以看到,配置文件被保存在了build文件下,而又一个cab文件被保存在了customer文件夹下面。这是因为我们如果让客户抓取trace,我 们不需要将整个Pssdiag安装文件发给客户,只需要将pssd.cab这个文件法送给客户,让客户自己解压,然后运行其中的pssdiag.cmd就 可以了。之星pssdiag.cmd的界面如下图所示:
在执行完上面批处理命令以后,我们在Pssdiag\Customer\pssd目录下会看到一个output文件夹,我们只需要让客户将这个output文件夹打包发送给我们就可以了。output文件夹中主要文件有如下图所示:
sqldiag.blg使用performance monitor打开,.trc文件使用sql profiler打开。