zoukankan      html  css  js  c++  java
  • 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.控制权将返给包含该事件的代码,然后继续进行处理。

  • 相关阅读:
    二、策略模式之商场促销计价器
    一、简单工厂模式之简易计算器
    java学习基础知识十——反射
    java学习基础知识九——IO
    java学习基础知识八——泛型
    java学习基础知识七
    java学习基础知识六
    二、机器学习模型评估
    《将博客搬至CSDN》
    一、Hadoop课程
  • 原文地址:https://www.cnblogs.com/TeyGao/p/3519619.html
Copyright © 2011-2022 走看看