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来得到程序的流程..

原文地址:https://www.cnblogs.com/attilax/p/15199918.html