zoukankan      html  css  js  c++  java
  • PAIP.SQL的跟踪与调试

    PAIP.SQL的跟踪与调试

    当我们参数化查询的时候,有时候SQL出错,需要跟踪调试。。

    JAVA参数查询的时候,是调用驱动转义,然后拼装成SQL,发往服务器,有API可以输出实际发出的SQL。。

    最近的一个。NET项目SqlParameter参数查询时,一个参数化查询出错,需要跟踪实际执行的SQL。。
    我用的是MSSQL EXPRESS 2008 。。

    找了半天,终于找到个好工具.  SqlExpressProfile.1.2.18 ,如果是企业版,会有个事件探查器,就是它了。。

    安装好后,"C:\Program Files\DataWizard\SqlProfiler\Sql Profiler.exe",打开.设定DB连接。。

    然后设定跟踪SQL,FILE》NEW SQL TRACE 》TAB“ EVENT”,设定事件为SqlStmtStaring,SqlStmtcompleted,RPCstarting,RPCcompleted,
    监听的字段全部设ALL。

    然后RUN就好了。。

    然后启动你的程序,连接数据库,就可以看到发出的SQL语句了。。
    如果是普通的SQL,事件是SqlStmtStaring类的。
    如果是参数化的SQL,事件是RPCstarting..

    结果如下:
    exec sp_executesql N'select * from [rwkuSubitem]  where id=@id  ',N'@id nvarchar(2)',@id=N'16',@h=N'127'


    可以看出,参数化的SQL实际是调用了服务器的sp_executesql 这个存储过程。。


    上面还有执行开始时间与结束时间,可以用来跟踪SQL性能不佳的语句。。
    如果一个程序没有源码,还可以用来跟踪其SQL来得到程序的流程..

  • 相关阅读:
    THINKphp学习笔记
    Js获取当前日期时间及其它操作
    Oracle数据导入导出imp/eXP
    SQL中的单记录函数
    Windows服务C#/VS2003
    oracle数据库开发的一些经验积累
    Oracle 数据库的安全策略
    高兴
    无法正确运行的C#程序
    最详细的Visual C++ 2008 Express Edition使用方法(图文)
  • 原文地址:https://www.cnblogs.com/attilax/p/15199918.html
Copyright © 2011-2022 走看看