当说到跟踪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
- ----------- --------------------------------
- ================================================================================
- 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
2. set showplan
3. set statistics io
4. set statistics time
5. set statistics plancost
需要说明的是:
set tracefile “” for 这是跟踪对应的连接的所有SQL语句
set tracefile ""只跟踪当前连接的所有SQL语句。
set tracefile on/off (启用或关闭)
当然,dbcc traceon(100) 也会输出一些跟踪的结果在服务器端。