Sql Server Profiler跟踪查询

本文导读

1、了解Profiler简单用法

2、相关参数说明

3、如何快速定位到自己要跟踪的SQL

当一个程序开发到一定程度,或者使用某些框架后,无法得知sql语句是如何书写的,但是因为BUG或者其他原因想找出界面操作后,产生的SQL语句,那么就需要使用到sql的一个跟踪工具------Sql Server Profiler(某些SQL05的版本安装后好像没有这个工具,08的都是有的);

         首先我们需要开始这个工具,打开SQL后,

     

   就可以打开这个工具;下面我们主要来说明下新建跟踪时的各个参数的说明,以及如何快速定位到自己想要的SQL;

    

         跟踪器默认只提供了图中的的一些事件比如最后两个:

SQL:BatchCompleted 事件类

指示已完成 Transact-SQL 批处理。

SQL:BatchStarting 事件类

指示正在启动 Transact-SQL 批处理。

     如果觉得事件还不够,那么你还可以选择勾上“选择所有事件”,对于其他事件的说明,见MSDN的详细说明http://msdn.microsoft.com/zh-cn/library/ms175481.aspx

   只要事件前面被勾上的,执行SQL的时候会自动监听到想应得执行SQL;

     我们默认点击运行后,会看到很多冒出很多莫名其妙的SQL;

    

       看图中红框框中的一些数据,第一列是事件名称,后面的执行的SQL内容数据,在往后就是一些应用程序的名称(谁触发的这条SQL),NTUsername是windows用户名,LoginName是登陆SQL服务的用户名;后面的参数不一一介绍,可以在新建查询的时候选择列筛选器,查看具体没一列的说明

  

      列筛选器也就是过滤条件,比如说我只想监听用sa连接到SQL服务执行的相关事件,那么选中LoginName选择类似于就行了;那么我们就只会监听到通过sa连接到数据库相关的事件;我们来测试一下具体的,我们在sql查询分析器中写一段SQL跟踪出来;

  

       然后运行的结果如下:

     

       这条我是根据ApplicationName来过滤的,还有根据其他你自己想要的列来快速筛选到你想要的数据;同样你想要有更多的列来筛选,在新建跟踪的时候勾上“显示所有列”就OK了;

       如果你不知道筛选列的数据怎么填,那你可以不做列筛选执行一次你要跟踪的步骤,然后在众多不知道啥东西的语句中找一次你的执行SQL,分析其过滤条件,然后在来新建跟踪,这样就可以更精准的定位了;

 

       另:得到自己想要的跟踪的SQL后,还可以拿这些跟踪出来的数据做数据优化分析;

       详见:http://hi.baidu.com/datianshen/item/d11d38a887c64d716dd45530

 

 

 

 

 

 

  

 

 

posted @ 2012-11-07 16:54  RegicideGod  阅读(...)  评论(...编辑  收藏