SQL Server扩展事件(Extended Events)-- 性能注意事项

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

使用 CREATE EVENT SESSION 将扩展事件会话放置在一起时,需要认真正确配置一些设置,因为它们可能会在无意中对性能产生影响。首先需要决定是以同步还是异步方式消耗事件。正如您所料,同步目标对所监控代码的性能产生的影响要大过异步目标。

 

如前所述,同步消耗某个事件时,触发该事件的代码必须一直等待,直到该事件被消耗为止。显然,如果事件消耗是一个复杂的过程,则这可能会降低代码的性能。

 

例如,在一个每秒处理数千个小事务的繁忙系统中,同步消耗 sql_statement_completed 事件及捕获查询计划动作很可能会对性能产生负面影响。另外还要记住,谓词始终是同步执行的,因此应注意不要为性能关键代码触发的事件创建过于复杂的谓词。

 

另一方面,您可能会被强制同步消耗事件。要计算某个特定事件的出现次数,最简单的方法很可能是使用 synchronous_event_counter 目标。

 

您必须考虑的第二件事情是如果决定使用异步目标,那么该如何配置事件缓冲。事件缓冲的默认可用内存数为 4MB。事件被触发,随后被目标消耗,期间的默认调度延迟为 30 秒。这意味着如果您希望每 10 秒生成一些事件统计数据,则必须对延迟时间进行调整。

 

对用于缓冲事件的内存进行分区的方法是将其绑定到事件缓冲设置。默认情况下是为整个实例创建一组缓冲区。在 SMP(对称多处理器)和 NUMA(非统一内存访问)计算机中,这可能会使处理器不得不等待访问内存,从而导致出现性能问题。

 

第三个注意事项是如何处理事件丢失。在定义扩展事件会话时,可指定事件是否可以“丢失”。这意味着如果没有足够的内存来缓冲某个事件,则可将其直接丢弃。默认设置是允许丢弃单个事件,但也可以允许整个事件缓冲区都丢失(适用于事件缓冲区很快就被填满的会话),甚至还可以指定任何事件都不得丢失。

 

使用最后一个选项时应格外注意,因为它会强制触发事件的代码一直等待,直到有足够的缓冲区内存来存储该事件为止。设置此选项几乎肯定会对性能产生不利影响。请注意,如果无意间启用了此选项,服务器仍会拥有足够的响应能力让您能够禁用此设置。

 

通常,您需要通盘考虑这些选项。实际上我并没有办法为您提供通用的最佳方法,我能做的只是向您强调深入领会它们,否则您可能会遇到性能问题。




















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






相关实践学习
使用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
相关文章
|
14天前
|
SQL 人工智能 算法
【SQL server】玩转SQL server数据库:第二章 关系数据库
【SQL server】玩转SQL server数据库:第二章 关系数据库
52 10
|
1月前
|
SQL 数据库 数据安全/隐私保护
Sql Server数据库Sa密码如何修改
Sql Server数据库Sa密码如何修改
|
2月前
|
SQL 算法 数据库
【数据库SQL server】关系数据库标准语言SQL之数据查询
【数据库SQL server】关系数据库标准语言SQL之数据查询
96 0
|
2月前
|
SQL 算法 数据库
【数据库SQL server】关系数据库标准语言SQL之视图
【数据库SQL server】关系数据库标准语言SQL之视图
77 0
|
23天前
|
SQL
启动mysq异常The server quit without updating PID file [FAILED]sql/data/***.pi根本解决方案
启动mysq异常The server quit without updating PID file [FAILED]sql/data/***.pi根本解决方案
17 0
|
14天前
|
SQL 算法 数据库
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
82 6
|
2天前
|
SQL 关系型数据库 MySQL
:“You have an error in your SQL syntax; check the manual that corresponds to your MySQL server versi
:“You have an error in your SQL syntax; check the manual that corresponds to your MySQL server versi
8 0
|
9天前
|
SQL 安全 网络安全
IDEA DataGrip连接sqlserver 提示驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接的解决方法
IDEA DataGrip连接sqlserver 提示驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接的解决方法
19 0
|
14天前
|
SQL 存储 数据挖掘
数据库数据恢复—RAID5上层Sql Server数据库数据恢复案例
服务器数据恢复环境: 一台安装windows server操作系统的服务器。一组由8块硬盘组建的RAID5,划分LUN供这台服务器使用。 在windows服务器内装有SqlServer数据库。存储空间LUN划分了两个逻辑分区。 服务器故障&初检: 由于未知原因,Sql Server数据库文件丢失,丢失数据涉及到3个库,表的数量有3000左右。数据库文件丢失原因还没有查清楚,也不能确定数据存储位置。 数据库文件丢失后服务器仍处于开机状态,所幸没有大量数据写入。 将raid5中所有磁盘编号后取出,经过硬件工程师检测,没有发现明显的硬件故障。以只读方式将所有磁盘进行扇区级的全盘镜像,镜像完成后将所
数据库数据恢复—RAID5上层Sql Server数据库数据恢复案例
|
18天前
|
SQL 数据安全/隐私保护
SQL Server 2016安装教程
SQL Server 2016安装教程
21 1