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#程序调用存储过程的时候,可以监控存储过程执行的情况,具体如下图: