科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道应用事件探查器优化SQL Server系统(2)

应用事件探查器优化SQL Server系统(2)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

当你的SQL Server数据库系统运行缓慢的时候,你或许多多少少知道可以使用SQL Server Profiler(中文叫SQL事件探查器)工具来进行跟踪和分析。

作者:苏有全 来源:赛迪网技术社区 2007年9月7日

关键字: 事件探查器 SQL Server SQL Server 各版本 数据库

  • 评论
  • 分享微博
  • 分享邮件
 

Read80trace工具介绍以及它的Normalization 功能

Read80Trace工具是一个命令行工具。使用Read80Trace工具可以大大节省分析Trace文件的时间,有事半功倍的效果。Read80Trace的主要工作原理是读取Trace文件,然后对语句进行Normalize (标准化),导入到数据库,生成性能统计分析的HTML页面。另外,Read80trace可以生成RML文件,然后OSTRESS工具使用RML文件多线程地重放Trace文件中的所有事件。这对于那些想把Profiler捕获的语句在另外一台服务器上重放成为可能。本文不详细介绍Read80trace或OStress工具,有兴趣的读者请自行参阅相关资料,相关软件可以从微软网站下载(注:软件名称为RML)

我要利用的是Read80Trace的标准化功能。什么是标准化?就是把那些语句模式类似,但参数不一样的语句全部归类到一起。举例说Trace中有几条语句如下:

  select * from authors where au_lname = 'white'
  select * from authors where au_lname = 'green'
  select * from authors where au_lname = 'carson'

  经过标准化后,上面的语句就变成如下的样子:
  select * from authors where au_lname = {str}
  select * from authors where au_lname = {str}
  select * from authors where au_lname = {str}

有了标准化后的语句,统计出数据库系统的访问模式就不再是难事。运行Read80trace 的时候我一般使用如下的命令行:

  Read80trace –f –dmydb –Imytrace.trc
  

其中-f开关是不生成RML文件,因为我不需要重放的功能。生成的RML文件比较大,建议读者如果不需要重放的话,也使用-f开关。

-d开关告诉read80trace把trace文件的处理结果存到mydb数据库中。我们后面创建的存储过程正是访问read80trace在mydb中生成的表来进行统计的。-I开关是指定要分析的的trace文件名。Read80trace工具很聪明,如果该目录下有Profiler产生的一系列Trace文件,如mytrace.trc,mytrace1.trc,mytrace2.trc等,那么它会一一顺序读取进行处理。

除了上面介绍的外,Read80trace还有很多其它有趣的开关。比如说使用-i开关使得Read80trace可以从zip或CAB文件中读取trace文件,不用自己解压。所有开关在Read80trace.chm中有详细介绍。我最欣赏的地方是read80trace的性能。分析几个GB大小的trace文件不足一小时就搞定了。我的计算机是一台内存仅为512MB的老机器,有这样的性能我很满意。

你也许会使用read80trace分析压力测试产生的trace文件。我建议还是分析从生产环境中捕获的Trace文件为好。因为很多压力测试工具都不能够真正模拟现实的环境,其得到的trace文件也就不能真实反映实际的情况。甚至有些压力测试工具是循环执行自己写的语句,更不能反映准确的访问模式。建议仅仅把压力测试产生的trace作为参考使用。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章