博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

SQL Server Profiler 怎么创建trace来收集sql log(.trc文件)

Posted on 2014-01-27 00:27  Hamilton Tan  阅读(1897)  评论(0编辑  收藏  举报

1.  先安装SQL Server 2008 R2或其他版本的数据库。

2.  打开profiler, 选择新建一个trace,连接到要监控的SQL Server数据库实例。

         打开 SQL Server Mangement—>工具—>SQL Server Profiler,具体如下图:

           

          

3. 在通用界面下,输入trace名称,使用标准的模板。选择保存到文件,指定文件目录,设置文件最大size,勾上“enable file rollover(启用文件滚动更新)“和“server processes trace data(服务器进程跟踪数据)“

4. 在事件选择界面下,先选上右下角的“显示所有事件“和“显示所有列“,然后 选择以下事件

Security Audit—>Audit login, Audit logout, Audit login failed.

TSQL—>SQL:StmtCompleted

5. 勾掉所有其他的事件,我们不需要其他额外的事件。

6. 点击“运行”开始收集trace

7. 运行后,马上点击停止,如下图:

8.点击“导出“—>“Script Trace definition(脚本跟踪定义)“—> SQL Server 2005-2008 R2,把脚本保存下来。

9. 在SQL Server management studio中,打开一个新的查询窗口,把脚本文件打开,直接执行的话,就在SQL Server上启动了profiler,在文件系统(就是存放.trc的目录下)上,你会看到一个新的.trc文件,这个就是存放抓取来的信息的文件。

10. 如果查看当前有多少profiler在后台运行,可以执行以下命令:

SELECT * FROM sys.fn_trace_getinfo(0) ;

GO

 

Traceid就是具体的某个trace id

如果要停止某个profiler,可以用以下命令

exec sp_trace_setstatus <trace id>, property

如果不停止,那么就会一直产生.trc日志文件

 

如果要启动某个profiler,可以用以下命令

exec sp_trace_setstatus 2, 1

 

如果要删除某个profiler,可以用以下命令

exec sp_trace_setstatus 2, 2

 .trc文件可以用trace profiler打开。它的size会随着运行时间增长,所以可以定期从清理。

另外把.trc文件保存,然后插入表里面,来进行分析

select * into trace_table
from ::fn_trace_gettable('E:\Test.trc',default)

 SQL Server Profiler 功能很强大,这只是一部分,通过收集.trc日志文件,还可以查看到哪些SQL语句有死锁等现象,从而给出解决问题的方法。

 例如:当C#程序调用存储过程的时候,可以监控存储过程执行的情况,具体如下图: