经常使用的SQL跟踪事件类

经常使用的SQL跟踪事件类


性能分析器事件选择对话框上有大量可供选择,现介绍工做中最常使用的事件。安全

 

1. Errors and Warnings: Attention服务器


当用户意外地同SQL Server断开链接时,通常就会激发该事件。最多见的缘由是客户库超时,而一般来讲,一个30秒的计时器在提交查询时便启动了。若是查询超时,就当即发现,所以这个事件使用很频繁。ide

 

2. Errors and Warnings: Exception 和 Errors and Warnings: User Error Message函数


异常和用户错误信息一块儿出现,通常都一块儿跟踪这两个类。当出现用户异常时,这两个事件就会被激发。异常事件包含错误数、严重性和状态,而用户错误信息事件包含错误的实际文本。性能

 

3. Locks: Deadlock graph 和 Locks: Lock:Deadlock Chain优化


在SQL Server以前的版本,死锁只能经过Deadlock Chain事件识别出来。SQL Server 2005以后引入了更多可用的Deadlock graph事件,这个事件生成标准XML,性能分析器能够将其呈现为很是清晰的图形输出。ui

 

4. Locks: Lock:Acquired 、 Locks: Lock:Released 和 Locks: Lock:Escalationspa


主要在解决死锁的同时使用这些事件,使用户知道在一个事务期间SQL Server用了什么锁,以及这些锁被保持了多长时间。若是用户对SQL Server各类隔离级别的运转感兴趣,能够监视这些事件。使用这些事件时,要确保对特定的目标spid进行过滤,以避免获得太多的信息而不方便处理。scala

 

5. Performance: Showplan XML Statistics Profile设计


该事件能够用来捕获用户正在服务器上进行性能分析的查询过的XML显示计划输出。这里实际上有一些不一样的显示计划和XML显示计划事件类,这一个是最有用的,由于它包含了实际行数及其余统计数据,而这些有助于优化查询。

 

6. Security Audit(事件类别)


尽管这并非一个事件类,但其实是一个包含多个事件类的类别,因为它包含了许多有用的事件类,而这些事件类有助于监视服务器上出现的几乎全部安全相关的活动,所以,应当将其加入到这个列表中。它包含了许多信息,例如失败的登陆尝试(“Audit Login Failed”事件类),对特定的表或其余对象的访问(“Audit Schema Object Access Event”事件类),甚至还有服务器启动时间(“Audit Server Starts And Stops”事件类)。这些事件类的绝大部分都是为SQL Server的内置服务器审核跟踪而设计的。

 

7. Security Audit: Audit Login 和 Security Audit: Audit Logout


将这两个事件从总体的安全审核类别中挑选出来,由于这两个事件天天都会用到,尤为是在作性能调校时十分有用。经过监视这两个事件及存储过程和T-SQL类别中的各类查询事件,用户能够更方便地在单个会话的基础上积聚信息。

 

提示:得益于SQL Server 2005 SP2中的一个改进,连汇集起来的登陆和登出也能够出发这些事件,使得它们比之前更加有用。要检测被激发的事件是否基于一个聚集链接,能够查看EventSubClass列的值是否为2。

 

8. Stored Procedures: RPC:Starting 和 Stored Procedures: RPC:Completed


当一个客户应用程序执行一个远程过程调用时(RPC:一般是一个带参数的查询或存储过程调用,具体是哪一个取决于使用的链接库),这些事件就会被激发。

 

9. TSQL: SQL:BatchStarting 和 TSQL: SQL:BatchCompleted


当一个客户应用程序执行一个ad hoc批处理时,这些事件就会被激发。结合RPC事件类使用这些事件能够容许用户捕捉到外部调用程序提交给服务器的全部请求。“SQL:BatchCompleted”事件类和相应的“RPC:Completed”事件类都填充信息至4个关键的列:CPU、Reads、Writes和Duration。

 

10. Stored Procedures: SP:StmtStarting 和 Stored Procedures: SP:StmtCompleted


在一个复杂的充满了流程控制语句的存储过程当中,有时很难肯定到底选择了哪条访问路径。每次执行一个存储过程当中的一条语句时,这些事件就会被激发,为用户显示发生事件的全景。这些事件可能会生成极其大量的数据。所以,最好仅在已通过滤了该跟踪以后再使用这些事件,这种过滤可经过一个正在跟踪的给定spid或一个特定的存储过程名称或对象ID(相应地使用ObjectName或ObjectId列)来完成。

 

11. Stored Procedures: SP:Recompile


经过分析认为存储过程重编译意味着一个潜在的SQL Server性能故障。SQL Server包含了一个帮助跟踪计数器(SQL Server: SQL统计值: SQL重编译/秒),若是发现该计数器的值居高不下,就能够考虑使用这个事件类来进行性能分析,以便肯定究竟是哪一个存储过程引发了故障。

 

12. Stored Procedures: SP:Starting


每当调用一个存储过程或函数时,该事件类就会被激发,不管是客户直接调用仍是被其余的存储过程或函数嵌套调用。因为该事件类不填充信息至读、写和CPU列,所以它对性能调校并无太大的用户,可是也有价值。常用这个类来获取给定时间间隔内一个特定存储过程被调用的次数统计,也能够用在存储过程嗲用被大量嵌套的状况下,而且须要明确肯定哪些序列调用致使了执行一个特定的存储过程。

 

13. Transactions: SQL Transaction


这个事件能够用来监视事务的启动、提交和回滚。经过查看EventSubClass列能够肯定事务出于何种状态,0、一、2分别表明事务的启动、提交和回滚。因为每次数据修改都会占用一个事务,所以这个事件可能会在一台忙碌的服务器上形成大量待返回的数据。若是可能,要确保基于正在跟踪的一个特定spid来过滤跟踪。

 

14. User configurable(事件类别)


该事件类别包含了10个事件,命名从用户配置:0一直到用户配置:9。这些事件能够被有足够ALTER TRACE访问权限的用户或模块激发,且容许跟踪用户数据。

相关文章
相关标签/搜索