XEvent--基础
--SQL Server 扩展事件具有高度可伸缩且高度可配置的体系结构,
--使用户能够按需收集解决性能问题或确定性能问题所需的信息。
--1. 性能损耗小
--2. 可配置性高
--3. 可捕获底层事件
--=====================================================
--SQL Server 扩展事件包
--包是用于SQL Server 扩展事件对象的容器。
--扩展事件包有三种类型
----package0 - 扩展事件系统对象。这是默认包。
----sqlserver - SQL Server 相关对象。
----sqlos - SQL Server 操作系统(SQLOS) 相关对象。
--查看扩展事件包
SELECT * FROM sys.dm_xe_packages P
--每个事件包包括:事件,目标,操作,类型,谓词,映射
--通道
--通道用于标识事件的用户
--关键字
--关键字是特定于应用程序的,并且使得对相关事件的分组更加细化,
--这样您能更容易地指定和检索要在会话中使用的事件
--获取关键字信息
select map_value Keyword from sys.dm_xe_map_values
where name = 'keyword_map'
--目标
--目标是指事件使用者。目标在触发事件的线程中同步处理事件
--或在系统提供的线程中异步处理事件。通常,在必须保持特定
--数据排序时将使用同步处理。扩展事件提供了多个目标,您可
--以根据需要将其用于定向事件输出
--操作
--操作是对事件做出的一个编程方式的响应或一系列响应。
--操作与事件绑定在一起,并且每个事件都可能具有唯一的一组操作。
--谓词
--谓词是一组逻辑规则,用于在处理事件时计算这些事件。
--这可以使扩展事件用户根据特定条件有选择地捕获事件数据。
--类型
--由于数据是排列在一起的字节集合,因此需要使用字节集合的长度和特征来解释这些数据
SELECT
DISTINCT OB.object_type
FROM sys.dm_xe_objects OB
--映射
--映射表用于将内部值映射到字符串,这使用户可以知道该值代表什么。
--用户可以获得关于内部值真正含义的说明,而不是只能够获取数值。
SELECT map_key, map_value
FROM sys.dm_xe_map_values
--查看扩展事件
SELECT xp.[name] AS [Package_Name], xo.*
FROM sys.dm_xe_objects xo
INNER JOIN sys.dm_xe_packages xp
ON xp.[guid] = xo.[package_guid]
WHERE xo.[object_type] = 'action'
ORDER BY xp.[name];
--查看某个扩展对象的列
SELECT *
FROM sys.dm_xe_object_columns
--============================================
--会话会话是一种将多个扩展事件对象链接到
--一起进行处理的方法—事件包含动作,将被目标所消耗。
--会话可链接任何注册的数据包中的对象,任何数量的会话
--都可以使用同一个事件、动作等。
--查看会话
SELECT * FROM sys.dm_xe_sessions;
Go
--在性能考虑方面涉及到
--1.那些事件需要被监控,这些事件的触发频率
--2.如何消耗事件,使用异步还是同步
--3.如果处理事件丢失(如果没有足够的内存来缓冲某个事件,是否可将其直接丢弃或强制其不丢失)
--事件的周期
--1.执行检查以查看是否有任何扩展事件会话正在监控该事件。如果没有,控制权将返给包含该事件的代码,然后继续进行处理。
--2.确定事件的负载,将所需的全部信息都收集到内存中—换言之,构建事件的负载。
--3.如果为该事件定义了任何谓词,则执行它们。此时,谓词结果可能是不应消耗该事件。如果是这种情况,控制权将返给包含该事件的代码,然后继续进行处理。
--4.此时系统已得知事件将被消耗,因此将执行链接到该事件的所有动作。现在事件已具有完整的负载,已为消耗做好准备。
--5.将事件提供给同步目标(如果有的话)。
--6.如果存在任何异步目标,将会缓冲该事件以便随后进行处理。
--7.控制权将返给包含该事件的代码,然后继续进行处理。

XEvent--基础的更多相关文章
- 信安周报-第02周:SQL基础
信安之路 第02周 Code:https://github.com/lotapp/BaseCode/tree/master/safe 前言 本周需要自行研究学习的任务贴一下: 1.概念(推荐) 数据库 ...
- java基础集合经典训练题
第一题:要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同,每个字符串长度为10; 分析:*1.看到这个题目,或许你脑海中会想到很多方法,比如判 ...
- node-webkit 环境搭建与基础demo
首先去github上面下载(地址),具体更具自己的系统,我的是windows,这里只给出windows的做法 下载windows x64版本 下载之后解压,得到以下东西 为了方便,我们直接在这个目录中 ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- Golang, 以17个简短代码片段,切底弄懂 channel 基础
(原创出处为本博客:http://www.cnblogs.com/linguanh/) 前序: 因为打算自己搞个基于Golang的IM服务器,所以复习了下之前一直没怎么使用的协程.管道等高并发编程知识 ...
- [C#] C# 基础回顾 - 匿名方法
C# 基础回顾 - 匿名方法 目录 简介 匿名方法的参数使用范围 委托示例 简介 在 C# 2.0 之前的版本中,我们创建委托的唯一形式 -- 命名方法. 而 C# 2.0 -- 引进了匿名方法,在 ...
- HTTPS 互联网世界的安全基础
近一年公司在努力推进全站的 HTTPS 化,作为负责应用系统的我们,在配合这个趋势的过程中,顺便也就想去搞清楚 HTTP 后面的这个 S 到底是个什么含义?有什么作用?带来了哪些影响?毕竟以前也就只是 ...
- Swift与C#的基础语法比较
背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...
- .NetCore MVC中的路由(1)路由配置基础
.NetCore MVC中的路由(1)路由配置基础 0x00 路由在MVC中起到的作用 前段时间一直忙于别的事情,终于搞定了继续学习.NetCore.这次学习的主题是MVC中的路由.路由是所有MVC框 ...
- .NET基础拾遗(5)多线程开发基础
Index : (1)类型语法.内存管理和垃圾回收基础 (2)面向对象的实现和异常的处理基础 (3)字符串.集合与流 (4)委托.事件.反射与特性 (5)多线程开发基础 (6)ADO.NET与数据库开 ...
随机推荐
- libevent源码学习
怎么快速学习开源库比如libevent? libevent分析 - sparkliang的专栏 - 博客频道 - CSDN.NET Libevent源码分析 - luotuo44的专栏 - 博客频道 ...
- C++和C# WebService相互调用
C#调用C++ gSOAP: 调用http://blog.csdn.net/ggz631047367/article/details/44567411的服务http://127.0.0.1:8089/ ...
- 给iOS开发新手送点福利,简述UIControl事件的用法
UIControl事件 1.UIControlEventTouchDown 单点触摸按下事件:用户点触屏幕,或者又有新手指落下的时候. 2.UIControlEventTouchDownRepeat ...
- js中改变文档的层次结构(创建元素节点,添加结点,插入子节点,取代子节点,删除子节点)
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- MySQL半同步复制配置
ansible-playbook -f 3 endpoint/mysql.yml -e "exec=fileConfig" -e "db_action=setAll&qu ...
- 带入gRPC:gRPC Streaming, Client and Server
带入gRPC:gRPC Streaming, Client and Server 原文地址:带入gRPC:gRPC Streaming, Client and Server 前言 本章节将介绍 gRP ...
- python's import mechanism
[python's import mechanism] 问题描述: [A.py] from B import D class C:pass [B.py] from A import C class D ...
- linux 查看文件夹文件大小数目等信息
1. 查看当前目录所有文件和文件夹的大小 方法一: $du -sh * 或 $du -h -d 0 * '-d 0' 代表查询目录的深度为0 ,也就是当前目录,'-d 3' 表示文件目录深度为3,可以 ...
- Python next() 函数
Python next() 函数 Python 内置函数 描述 next() 返回迭代器的下一个项目. 语法 next 语法: next(iterator[, default]) 参数说明: ite ...
- sql中从指定位置截取指定长度字符串
1. 字符串函数应用 --从指定索引截取指定长度的字符串 ,) --获取字符串中指定字符的索引(从1开始) select charindex(',','ab,cdefg') --实际应用中的语句 , ...