当说到跟踪SQL语句,有人可能会问起这个功能,也许有人会想到用审计功能,为了跟踪SQL语句,去启用审计功能,会成为一种浪费,或许用户只是想跟踪某一个连接的所有SQL语句呢?
请看简单的示例:
1> set tracefile "d:/abc.txt"
2> go
1> set show_sqltext on
2> set statistics io on
3> go
1> select * from t123
2> go
id col2
----------- --------------------------------
再打开d:\abc.txt,内容如下:
================================================================================
Application Tracing report for spid 26 from application "isql"
run by login "sa" on host "SEAN-E6400"
Tracing started on 2013/02/07 05:15:34.48
================================================================================
2013/02/07 05:15:50.70
No useful sqltext available.
Total writes for this command: 0
End of Batch 4
2013/02/07 05:15:55.28
SQL Text: select * from t123
Table: t123 scan count 1, logical reads: (regular=1 apf=0 total=1), physical reads: (regular=0 apf=0 total=0), apf IOs used=0
Total writes for this command: 0
End of Batch 5
这样看来,还是蛮方便的,索引把上边的on/off开关选项,常用的都列到这里:
1. set show_sqltext <on/off>
2. set showplan <on/off>
3. set statistics io <on/off>
4. set statistics time <on/off>
5. set statistics plancost <on/off>
需要说明的是:
set tracefile “<file-path>” for <spid> 这是跟踪对应<spid>的连接的所有SQL语句
set tracefile "<file-path>"只跟踪当前连接的所有SQL语句。
set tracefile on/off (启用或关闭)
当然,dbcc traceon(100) 也会输出一些跟踪的结果在服务器端。
作者:iihero 发表于2013-2-7 5:21:03
原文链接