--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--基础的更多相关文章

  1. 信安周报-第02周:SQL基础

    信安之路 第02周 Code:https://github.com/lotapp/BaseCode/tree/master/safe 前言 本周需要自行研究学习的任务贴一下: 1.概念(推荐) 数据库 ...

  2. java基础集合经典训练题

    第一题:要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同,每个字符串长度为10; 分析:*1.看到这个题目,或许你脑海中会想到很多方法,比如判 ...

  3. node-webkit 环境搭建与基础demo

    首先去github上面下载(地址),具体更具自己的系统,我的是windows,这里只给出windows的做法 下载windows x64版本 下载之后解压,得到以下东西 为了方便,我们直接在这个目录中 ...

  4. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  5. Golang, 以17个简短代码片段,切底弄懂 channel 基础

    (原创出处为本博客:http://www.cnblogs.com/linguanh/) 前序: 因为打算自己搞个基于Golang的IM服务器,所以复习了下之前一直没怎么使用的协程.管道等高并发编程知识 ...

  6. [C#] C# 基础回顾 - 匿名方法

    C# 基础回顾 - 匿名方法 目录 简介 匿名方法的参数使用范围 委托示例 简介 在 C# 2.0 之前的版本中,我们创建委托的唯一形式 -- 命名方法. 而 C# 2.0 -- 引进了匿名方法,在 ...

  7. HTTPS 互联网世界的安全基础

    近一年公司在努力推进全站的 HTTPS 化,作为负责应用系统的我们,在配合这个趋势的过程中,顺便也就想去搞清楚 HTTP 后面的这个 S 到底是个什么含义?有什么作用?带来了哪些影响?毕竟以前也就只是 ...

  8. Swift与C#的基础语法比较

    背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...

  9. .NetCore MVC中的路由(1)路由配置基础

    .NetCore MVC中的路由(1)路由配置基础 0x00 路由在MVC中起到的作用 前段时间一直忙于别的事情,终于搞定了继续学习.NetCore.这次学习的主题是MVC中的路由.路由是所有MVC框 ...

  10. .NET基础拾遗(5)多线程开发基础

    Index : (1)类型语法.内存管理和垃圾回收基础 (2)面向对象的实现和异常的处理基础 (3)字符串.集合与流 (4)委托.事件.反射与特性 (5)多线程开发基础 (6)ADO.NET与数据库开 ...

随机推荐

  1. 学习笔记之Android

    Android 开发专区 - 开源中国社区 http://www.oschina.net/android 探索 Android Studio | Android Studio https://deve ...

  2. [转]JAVA 反射及使用

    <%@page contentType="text/html; charset=GBK"%> <%@page import="java.security ...

  3. Hyberledger-Fabric 1.00 RPC学习(1)

    参考:http://hyperledger-fabric.readthedocs.io/en/latest/write_first_app.html 本文的目的就是基于Hyperledger Fabr ...

  4. C# JSON 序列化

    1.JavaScriptSerializer System.Web.Extensions.dll System.Web.Script.Serialization命名空间 Serialize Deser ...

  5. lookup 控件

    lookup->ADOQuery->Connection = DataModule1->ADOConnection1; lookup->ADOQuery->SQL-> ...

  6. MyBait 符号大于 小于理解

    EQ 就是 EQUAL等于 NQ 就是 NOT EQUAL不等于 GT 就是 GREATER THAN大于 LT 就是 LESS THAN小于 GE 就是 GREATER THAN OR EQUAL ...

  7. vlc相关命令行设置

    1:改变VLC模块参数   http://tianxiaoma.blog.51cto.com/1501174/309519 ====================================== ...

  8. Socket调用方式(同步,异步,阻塞,非阻塞)

    同步: 我调用一个功能,该功能没有结束前,我死等结果. 异步: 当一个异步过程调用发出后,调用者不能立刻得到结果.该功能在完成后,通过状态.通知和回调来通知调用者. 同步和非同步关注的是调用者是否等待 ...

  9. react-native react-navigation的用法

    react-navigation升级了, 看这个: react-navigation 3.x版本的使用 一.问题背景 react-navigation是react-native官方推荐的,基于Java ...

  10. Golang之interface(多态,类型断言)

    多态用法 package main //一种事物的多种形态,都可以按照统一的接口进行操作 //多态 import ( "fmt" "math/rand" &qu ...