DAT313_SQL Server 2008 扩展事件(Extended Event)
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
17
server_event_sessions 列出所有事件会话定义
server_event_session_targets 列出所有事件会话的所有目标
server_event_session_Events 列出所有事件会话的所有事件
server_event_session_actions 列出所有事件会话的所有操作
已注册包
缓冲区
调动程序
对象…
会话包含目标和启用的 事件 同一个事件可在多个会话中启用 操作和谓词通过会话绑定到事件
包对象和会话的关系是多对多 会话策略:
事件缓冲 事件处理延迟时间 会话是安全边界
新增CREATE EVENT SESSION 语法 增加目标, 事件, 谓词, 操作和事件会话层的选项
IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
事件会话的定义储存与系统目录 事件会话通过配置可以在服务器启动的时候自动启动 新增ALTER EVENT SESSION语法
为运行中的event sessions增加或删除targets和事件
创建事件会话示例
CREATE EVENT SESSION IOActivity ON SERVER ADD EVENT sqlserver.file_read_completed
存储桶对象 产生关于事件数据的直方图来定位热点计数器目标 针对来自件多久被触发一次的轻量级统计方式
配对目标 找到误用的资源
环形缓存区目标 在线事件历史
ETW目标 关联SQL和Windows的操作
文件目标 把事件保存下来以供将来分析
会话
激活的 事件
目标
谓词
操作
引擎
调动程序管 理器
Action (操作)
在触发事件的线程上同步调用 能在事件的负荷上增加数据
给任何事件增加输入缓存或者计划句柄 收集任何事件上的 TSQL调用堆栈 接收事件的操作 触发内存转储 (Memory dump)
Predicate (谓词)
全部布尔表达式 在发布时过滤 事件 两种类型的谓词
Package0 (扩展事件系统对象) Sqlserver (Sql server相关对象) Sqlos (Sqlos相关对象)
Event (事件)
事件是代码中已知的一点 事件都有个用于定义默认负载的版本控制架构
完美地配合有描述性名称的 事件数据 事件有三个类型的属性
只读: 事件元数据 (名称, GUID, 关键字) 数据: 事件数据在 事件触发时填充 可自定义: 用户可设置, 能修改事件的那些数据被收集
一般来说,异步对运行性能有很少的影响 同步目标对运行时间可能有更大影响 缓冲区的考虑因素 对会话缓冲区分区,能提高能提高可伸缩性 随着CPU数量的增加,对事件会话缓冲区进行分区能保
持低消耗 增加缓冲区大小以最大化异步目标的性能
特征(续)
检查事件保留的需求 保留每个事件可能对性能有比较大的影响,因为新触发 的线程会得不到可用的缓存 使用NO_EVENT_LOSS 时有些事件不能被加到事件会话中 尽可能选择ALLOW_SINGLE_EVENT_LOSS或者 ALLOW_MULTIPLE_EVENT_LOSS
复杂系统通常拥有复杂并且耗时的问题 需要一个轻量级的机制,来收集运行时的信息而不仅仅是
数据 有时一个问题需要深入到内部结构
需要查看细节来发现问题 有时一个问题需要从全局的角度来看
需要查看表面上没有关系的 操作
服务器系统中事件的基础结构 性能
对于系统来说,收集事件的成本是可以预测和接受的。 可伸缩
演示
使用谓词和操作来捕捉超过限度的查询
演示
使用wait_info 事件来鉴别欺骗
疑问和解答
低消耗 深层的可见性方便了问题诊断,而以前只能通过侵入方式
进行 可扩展的数据收集,能在准确的正确时间捕捉到系统信息 谓词过滤掉干扰 在线分析带来的关于事故的信息,更接近于事故本身。 扩展事件降低了解决生产系统问题的时间
事件
目标
模块 (sqlserver.exe)
包
操作
类型
谓词
影射
Package (包)
包是容器 每个包都要有GUID和名称 包在装载模块时注册 可以容纳任或所有一下内容:
事件,目标,操作,谓词,类型,映射 默认对象是多样化的
来自不同包的对象可以混在一起 SQL Server 2008 有3个包
随着服务器数量的增长, 事件收集的成本仍可预测 可扩展
和事件一起收集全局状态信息 可配置
配置收集事件的成本来适应你的工作量
事件与在触发时获取的 操作分离(在事件触发的时候允许获 取任何 操作)
动态数据捕捉
增加非事件目标部分的数据
Predicates可以动态筛选事件的激发 可以使用Windows事件追踪 (ETW) 事件引擎与单个事件分离
感谢您参与此会场! 您的意见与建议对我们非常重要。
请您填写反馈表。
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS,
局部事件数据 全局状态 能储存状态 Predicate 维持一个计数器 可以确保过滤器只在第n次触
发 记住出现过的最大值
Target (目标)
事件使用者 同步或者异步 能处理单个的事件,也能处理事件的全部缓冲区 允许在线的事件分析或者离线存储
动态聚合事件数据 在事件数据中应用规则 把事件写入文件
目标通过target_data列返回结果
dm_xe_session_object_columns dm_xe_session_events dm_xe_session_event_actions
演示
找到扩展事件对象
特征
在2GHz的处理器上 ,触发单个事件的成本是~2µs CPU 时间 目标因素
(action (sqlserver.sql_text) where file_id=1), ADD EVENT sqlserver.file_write_completed, ADD EVENT sqlserver.databases_log_flush ADD TARGET package0.asynchronous_file_target (set filename='c:\xelog.xel', metadatafile='c:\xelog.xem')
server_event_session_fields 列出所有事件和目标的可配置的属性
包和对象的元数据 dm_xe_packages dm_xe_objects dm_xe_object_columns dm_xe_map_values
运行时信息 dm_xe_sessions dm_xe_session_targets
server_event_sessions 列出所有事件会话定义
server_event_session_targets 列出所有事件会话的所有目标
server_event_session_Events 列出所有事件会话的所有事件
server_event_session_actions 列出所有事件会话的所有操作
已注册包
缓冲区
调动程序
对象…
会话包含目标和启用的 事件 同一个事件可在多个会话中启用 操作和谓词通过会话绑定到事件
包对象和会话的关系是多对多 会话策略:
事件缓冲 事件处理延迟时间 会话是安全边界
新增CREATE EVENT SESSION 语法 增加目标, 事件, 谓词, 操作和事件会话层的选项
IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
事件会话的定义储存与系统目录 事件会话通过配置可以在服务器启动的时候自动启动 新增ALTER EVENT SESSION语法
为运行中的event sessions增加或删除targets和事件
创建事件会话示例
CREATE EVENT SESSION IOActivity ON SERVER ADD EVENT sqlserver.file_read_completed
存储桶对象 产生关于事件数据的直方图来定位热点计数器目标 针对来自件多久被触发一次的轻量级统计方式
配对目标 找到误用的资源
环形缓存区目标 在线事件历史
ETW目标 关联SQL和Windows的操作
文件目标 把事件保存下来以供将来分析
会话
激活的 事件
目标
谓词
操作
引擎
调动程序管 理器
Action (操作)
在触发事件的线程上同步调用 能在事件的负荷上增加数据
给任何事件增加输入缓存或者计划句柄 收集任何事件上的 TSQL调用堆栈 接收事件的操作 触发内存转储 (Memory dump)
Predicate (谓词)
全部布尔表达式 在发布时过滤 事件 两种类型的谓词
Package0 (扩展事件系统对象) Sqlserver (Sql server相关对象) Sqlos (Sqlos相关对象)
Event (事件)
事件是代码中已知的一点 事件都有个用于定义默认负载的版本控制架构
完美地配合有描述性名称的 事件数据 事件有三个类型的属性
只读: 事件元数据 (名称, GUID, 关键字) 数据: 事件数据在 事件触发时填充 可自定义: 用户可设置, 能修改事件的那些数据被收集
一般来说,异步对运行性能有很少的影响 同步目标对运行时间可能有更大影响 缓冲区的考虑因素 对会话缓冲区分区,能提高能提高可伸缩性 随着CPU数量的增加,对事件会话缓冲区进行分区能保
持低消耗 增加缓冲区大小以最大化异步目标的性能
特征(续)
检查事件保留的需求 保留每个事件可能对性能有比较大的影响,因为新触发 的线程会得不到可用的缓存 使用NO_EVENT_LOSS 时有些事件不能被加到事件会话中 尽可能选择ALLOW_SINGLE_EVENT_LOSS或者 ALLOW_MULTIPLE_EVENT_LOSS
复杂系统通常拥有复杂并且耗时的问题 需要一个轻量级的机制,来收集运行时的信息而不仅仅是
数据 有时一个问题需要深入到内部结构
需要查看细节来发现问题 有时一个问题需要从全局的角度来看
需要查看表面上没有关系的 操作
服务器系统中事件的基础结构 性能
对于系统来说,收集事件的成本是可以预测和接受的。 可伸缩
演示
使用谓词和操作来捕捉超过限度的查询
演示
使用wait_info 事件来鉴别欺骗
疑问和解答
低消耗 深层的可见性方便了问题诊断,而以前只能通过侵入方式
进行 可扩展的数据收集,能在准确的正确时间捕捉到系统信息 谓词过滤掉干扰 在线分析带来的关于事故的信息,更接近于事故本身。 扩展事件降低了解决生产系统问题的时间
事件
目标
模块 (sqlserver.exe)
包
操作
类型
谓词
影射
Package (包)
包是容器 每个包都要有GUID和名称 包在装载模块时注册 可以容纳任或所有一下内容:
事件,目标,操作,谓词,类型,映射 默认对象是多样化的
来自不同包的对象可以混在一起 SQL Server 2008 有3个包
随着服务器数量的增长, 事件收集的成本仍可预测 可扩展
和事件一起收集全局状态信息 可配置
配置收集事件的成本来适应你的工作量
事件与在触发时获取的 操作分离(在事件触发的时候允许获 取任何 操作)
动态数据捕捉
增加非事件目标部分的数据
Predicates可以动态筛选事件的激发 可以使用Windows事件追踪 (ETW) 事件引擎与单个事件分离
感谢您参与此会场! 您的意见与建议对我们非常重要。
请您填写反馈表。
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS,
局部事件数据 全局状态 能储存状态 Predicate 维持一个计数器 可以确保过滤器只在第n次触
发 记住出现过的最大值
Target (目标)
事件使用者 同步或者异步 能处理单个的事件,也能处理事件的全部缓冲区 允许在线的事件分析或者离线存储
动态聚合事件数据 在事件数据中应用规则 把事件写入文件
目标通过target_data列返回结果
dm_xe_session_object_columns dm_xe_session_events dm_xe_session_event_actions
演示
找到扩展事件对象
特征
在2GHz的处理器上 ,触发单个事件的成本是~2µs CPU 时间 目标因素
(action (sqlserver.sql_text) where file_id=1), ADD EVENT sqlserver.file_write_completed, ADD EVENT sqlserver.databases_log_flush ADD TARGET package0.asynchronous_file_target (set filename='c:\xelog.xel', metadatafile='c:\xelog.xem')
server_event_session_fields 列出所有事件和目标的可配置的属性
包和对象的元数据 dm_xe_packages dm_xe_objects dm_xe_object_columns dm_xe_map_values
运行时信息 dm_xe_sessions dm_xe_session_targets