常用的SQL跟踪事件类

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介:

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

 

1. Errors and Warnings: Attention


当用户意外地同SQL Server断开连接时,一般就会激发该事件。最常见的原因是客户库超时,而通常来说,一个30秒的计时器在提交查询时便启动了。如果查询超时,就立即发现,因此这个事件使用很频繁。

 

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,性能分析器可以将其呈现为非常清晰的图形输出。

 

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


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

 

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、1、2分别代表事务的启动、提交和回滚。由于每次数据修改都会占用一个事务,因此这个事件可能会在一台忙碌的服务器上造成大量待返回的数据。如果可能,要确保基于正在跟踪的一个特定spid来过滤跟踪。

 

14. User configurable(事件类别)


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

















本文转自UltraSQL51CTO博客,原文链接:http://blog.51cto.com/ultrasql/1588738 ,如需转载请自行联系原作者

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
6月前
|
SQL 运维 关系型数据库
在OceanBase数据库中,你可以通过以下几个途径来查看慢SQL和等待事件
在OceanBase数据库中,你可以通过以下几个途径来查看慢SQL和等待事件
208 1
|
1月前
|
Oracle Java 关系型数据库
【问题】Cause: java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK
【问题】Cause: java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK
|
3月前
|
SQL 监控 关系型数据库
解密SQL性能异常事件及阿里云数据库的性能调优实践
作为开发者想必都知道数据库是现代应用的核心组件之一,而且在当今互联网时代之下,SQL查询的性能直接影响系统的整体性能,它的性能对于系统的稳定性和响应速度至关重要。那么本文就来讨论一下SQL性能异常的排查和优化方法,包括我个人印象深刻的SQL性能异常事件,以及分享一下使用阿里云数据库产品/工具进行SQL性能调优的经验和心得体会。
84 1
解密SQL性能异常事件及阿里云数据库的性能调优实践
|
4月前
|
SQL Java 数据库连接
【Java调试】通过SqlSessionFactory类对象获取mapper文件内的动态SQL在执行时的完整SQL及参数(2种使用方法+测试Demo及结果)
【Java调试】通过SqlSessionFactory类对象获取mapper文件内的动态SQL在执行时的完整SQL及参数(2种使用方法+测试Demo及结果)
53 0
|
4月前
|
Oracle Java 关系型数据库
Generator【SpringBoot集成】代码生成+knife4j接口文档(2种模板设置、逻辑删除、字段填充 含代码粘贴可用)保姆级教程(注意事项+建表SQL+代码生成类封装+测试类)
Generator【SpringBoot集成】代码生成+knife4j接口文档(2种模板设置、逻辑删除、字段填充 含代码粘贴可用)保姆级教程(注意事项+建表SQL+代码生成类封装+测试类)
28 0
|
4月前
|
SQL 数据库连接 数据库
VB.NET 中使用SqlConnection类连接到Microsoft SQL Server数据库的详细步骤
VB.NET 中使用SqlConnection类连接到Microsoft SQL Server数据库的详细步骤
90 0
|
4月前
|
SQL Java 数据库连接
util包和sql包里的Date类区别,该用哪一个?
util包和sql包里的Date类区别,该用哪一个?
27 0
|
4月前
|
SQL XML Java
mybatis SQL类
mybatis SQL类
45 1
|
SQL XML 存储
SQL Server通过扩展事件捕获DDL
SQL Server通过扩展事件捕获DDL
SQL Server通过扩展事件捕获DDL
|
SQL XML 关系型数据库
SQL Server 通过扩展事件捕获慢SQL
SQL Server 通过扩展事件捕获慢SQL
SQL Server 通过扩展事件捕获慢SQL