zoukankan      html  css  js  c++  java
  • 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

      


    作者:Regicidegod
    出处:http://www.cnblogs.com/RegicideGod/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    ORACLE AWR 和 ASH
    11g RAC R2 日常巡检--Grid
    Linux中重命名文件
    Xshell4连接Linux后 win快捷键锁屏
    vim 删除临时文件
    shell--read命令
    shell基础篇(一)从hello world开始
    ORACLE--分区表数据清理
    Shell—学习之心得
    awk 手册--【转载】
  • 原文地址:https://www.cnblogs.com/RegicideGod/p/2759120.html
Copyright © 2011-2022 走看看