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

  • 相关阅读:
    ASP.NET中读取Excel内容,并显示在界面上
    SQL SERVER 的 CLR表值函数
    nowrap要与回车换行符结合才有意义
    何时使用 FILESTREAM?
    case 用在 UPDATE
    查看分区在哪个文件组
    C#里面的随机对象Random
    CLR程序里引用System.Web.dll
    不用写成 if @i=1 OR @i=2 OR ... 这么蠢
    SQL SERVER定期转移海量数据方案
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2759395.html
Copyright © 2011-2022 走看看