使用SQLProfiler(事件探查器)跟踪数据库操作及慢查询
1:应用程序连接SQL SERVER数据库服务器;
2:打开SQL Profiler开启数据库事件跟踪;
(1):打开SQL Server Management Studio,选择 “工具”—“SQL Server Profiler”,如下图:
(2): 连接到指定服务器,并制定跟踪计划;
选择需要连接的服务器之后;
默认弹出跟踪属性设置界面,
可以设置跟踪结果保存到文件或者保存到表,并能设置跟踪的停止时间;如下图:
在事件选择框中选择要跟踪的事件,如下图:
具体事件类别请参考。
上图可以看出,可以跟踪指定的应用程序,指定的机器名,指定的数据库登录名,能记录所有应用程序发出的SQL操作请求以及执行开始时间,结束时间,持续时间等;
在上图的列筛选器中对需要跟踪的事件设置筛选条件;如下图:
如有多个应用程序或者多个人同时登陆连接到这台数据库服务器,可以在这里进行筛选设置,只跟踪指定机器,指定应用程序,指定数据库登录用户的所有数据库操作;
具体跟踪各事件列的含义请参考:
点运行之后,可自动运行,无须值守,可自动运行到之前设置跟踪计划时指定的停止时间,停止跟踪;
(3):运行应用程序,进行测试操作;
应用程序包括:所有连接数据库的应用程序都可以,无论是C/S架构的软件,还是B/S架构的浏览器,或者数据库本身,所有连接到数据库,对数据库做的任何操作都可以记录,并可以根据设置的跟踪条件进行筛选;
如设置超过指定时间的查询:
(4):对跟踪结果进行分析;如下图:
如上图所示,已经记录了执行的SQL查询语句,开始时间,结束时间,持续时间,查询的应用程序名,发起人等;
注:有时候可能显示时间都0,此时可以工具——>选项中对时间单位进行设置。
附录:
事件类别 |
|
Broker 事件类别包括由 Service Broker 生成的事件类。 |
|
Cursors 事件类别包括由游标操作生成的事件类。 |
|
CLR 事件类别 包括通过执行 .NET 公共语言运行时 (CLR) 对象而生成的事件类。 |
|
Database 事件类别包括自动增大或收缩数据文件或日志文件时生成的事件类。 |
|
Deprecation 事件类别包括与不推荐使用的情况相关的事件。 |
|
Errors and Warnings 事件类别(数据库引擎)包括返回 SQL Server 错误或警告时产生的事件类。例如,编译存储过程时发生的错误或 SQL Server 中的异常错误。 |
|
Full Text 事件类别包括启动、中断或停止全文搜索时生成的事件类。 |
|
Locks 事件类别包括在获取、取消、释放锁时或者在对锁执行一些其他操作时生成的事件类。 |
|
Objects 事件类别包括在创建、打开、关闭或删除数据库对象时生成的事件类。 |
|
OLEDB 事件类别包括由 OLE DB 调用生成的事件类。 |
|
Performance 事件类别包括在执行 SQL 数据操作语言 (DML) 运算符时生成的事件类。 |
|
Progress Report 事件类别包括 Progress Report: Online Index Operation 事件类。 |
|
Scans 事件类别包括扫描表和索引时生成的事件类。 |
|
Security Audit 事件类别包括用于审核服务器活动的事件类。 |
|
Server 事件类别包含常规服务器事件。 |
|
Sessions 事件类别包括在连接和断开 SQL Server 实例的客户端时生成的事件类。 |
|
Stored Procedures 事件类别包括执行存储过程时生成的事件类。 |
|
Transactions 事件类别包括执行 Microsoft 分布式事务处理协调器事务时或写入事务日志时生成的事件类。 |
|
TSQL 事件类别包括执行从客户端传递到 SQL Server 实例的 Transact-SQL 语句时生成的事件类。 |
|
User-Configurable 事件类别包括可以定义的事件类。 详情请参考:http://technet.microsoft.com/zh-cn/library/ms175481(v=sql.90).aspx |