SQL中常用的跟踪事件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
sql server profiler中常用的跟踪事件
一、Errors and Warnings: Exception 和 Errors and Warnings: User Error Message
异常和用户错误信息一起出现,一般都一起跟踪这两个类。当出现用户异常时,这两个事
件就会被激发。异常事件包含错误数、严重性和状态,而用户错误信息事件包含错误的实
际文本。
二、Locks: Deadlock graph 和 Locks: Lock:Deadlock Chain
在SQL Server 2005之前的版本,死锁只能通过Deadlock Chain事件识别出来。SQL Server 2005之后引入了更多可用的Deadlock graph事件,这个事件生成标准XML,性能分析器可以将其呈现为非常清晰的图形输出。
三、Locks: Lock:Acquired 、 Locks: Lock:Released 和 Locks: Lock:Escalation
主要在解决死锁的同时使用这些事件,使用户知道在一个事务期间SQL Server用了什么锁,以及这些锁被保持了多长时间。如果用户对SQL Server各种隔离级别的运转感兴趣,可以监视这些事件。使用这些事件时,要确保对特定的目标spid进行过滤,以免得到太多
的信息而不方便处理。
四、Security Audit: Audit Login 和 Security Audit: Audit Logout
1、这两个事件每天都会用到,尤其是在做性能调校时十分有用。通过监视这两个事件及
存储过程和T-SQL类别中的各种查询事件,用户可以更方便地在单个会话的基础上积聚信息。
2、要检测被激发的事件是否基于一个汇集连接,可以查看EventSubClass列的值是否为2。
五、Stored Procedures: SP:StmtStarting 和 Stored Procedures: SP:StmtCompleted
1、在一个复杂的充满了流程控制语句的存储过程中,有时很难确定到底选择了哪条访问
路径。
2、每次执行一个存储过程中的一条语句时,这些事件就会被激发,为用户显示发生事件
的全景。这些事件可能会生成极其大量的数据。因此,最好仅在已经过滤了该跟踪之后再
使用这些事件,这种过滤可通过一个正在跟踪的给定spid或一个特定的存储过程名称或对象ID(相应地使用ObjectName或ObjectId列)来完成。
六、Stored Procedures: SP:Recompile
SQL Server包含了一个帮助跟踪计数器(SQL Server: SQL统计值: SQL重编译/秒),如果发现该计数器的值居高不下,就可以考虑使用这个事件类来进行性能分析,以便确定到底是哪个存储过程引起了故障。
七、Transactions: SQL Transaction
1、这个事件可以用来监视事务的启动、提交和回滚。
2、通过查看EventSubClass列可以确定事务处于何种状态,0、1、2分别代表事务的启动、提交和回滚。
3、由于每次数据修改都会占用一个事务,因此这个事件可能会在一台忙碌的服务器上造成大量待返回的数据。如果可能,要确保基于正在跟踪的一个特定spid来过滤跟踪。