Sesiones de Eventos extendidos

Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance

Una sesión de Eventos extendidos de SQL Server se crea en el proceso del motor de base de datos de SQL Server en el que se hospeda el motor de Eventos extendidos. Los aspectos siguientes de una sesión de Eventos extendidos proporcionan un contexto para entender la infraestructura de Eventos extendidos y el procesamiento que se produce:

  • Estados de sesión. Los distintos estados en que se encuentra una sesión de Eventos extendidos cuando se ejecutan las instrucciones CREATE EVENT SESSION y ALTER EVENT SESSION.

  • Contenido y características de la sesión. Contenido de una sesión de Eventos extendidos, por ejemplo destinos y eventos, y cómo estos objetos se relacionan en una sesión o entre sesiones.

Estados de sesión

La ilustración siguiente muestra los diversos estados de una sesión de Extended Events.

Diagrama que muestra el estado de sesión de eventos extendidos.

En la figura anterior, observa que el estado de la sesión cambia cuando se emiten los distintos comandos de lenguaje de definición de datos (DDL) para una sesión de evento. En la tabla siguiente se describen estos cambios de estado.

Etiqueta de la ilustración Instrucción DDL Descripción
Creación CREATE EVENT SESSION El proceso de host crea un objeto de sesión que contiene los metadatos proporcionados por CREATE EVENT SESSION. El proceso de host valida la definición de la sesión, valida el nivel del permiso de usuario y almacena los metadatos en la base de datos master. En este punto la sesión no está activa.
Alter ALTER EVENT SESSION, STATE=START El proceso de host inicia la sesión. El proceso de host lee los metadatos almacenados, valida la definición de la sesión, comprueba el nivel del permiso de usuario y crea la sesión. Se cargan los objetos de sesión, como eventos y destinos, y el control de eventos está activo.
Alter ALTER EVENT SESSION, STATE=STOP El proceso de host detiene la sesión activa pero conserva los metadatos.
Drop DROP EVENT SESSION Dependiendo de que la sesión esté activa o no, Drop (DROP SESSION) eliminará los metadatos y cerrará la sesión activa, o eliminará los metadatos de la sesión.

Contenido y características de la sesión

Las sesiones de Eventos extendidos tienen límites implícitos en cuanto que la configuración de una sesión no cambia la configuración de otra. Sin embargo, estos límites no impiden que un evento o un tipo de destino se utilice en más de una sesión.

En la siguiente ilustración se muestra el contenido de la sesión y la relación entre los paquetes y las sesiones.

Diagrama que muestra la coexistencia y el uso compartido de objetos en sesiones.

En relación con la ilustración anterior, ten en cuenta lo siguiente:

  • La asignación entre los objetos de paquete y las sesiones es de varios a varios, lo que significa que un objeto de un tipo específico puede aparecer en varias sesiones, y una sesión puede contener varios objetos.
  • El mismo evento (Event1) o destino (Target1) puede usarse en más de una sesión.

Las sesiones tienen las características siguientes:

  • Las acciones y predicados se enlazan a los eventos sesión por sesión. Si tiene el evento 1 en la sesión A con la acción 1 y el predicado Z, ello no impide en modo alguno tener el evento 1 en la sesión B con la acción 2 y la acción 3 sin predicado.
  • Las directivas están asociadas a las sesiones para administrar el almacenamiento en búfer y el envío, y el seguimiento de causalidad.

El almacenamiento en búfer hace referencia a cómo se almacenan los datos de eventos mientras se está ejecutando una sesión de eventos. Las directivas de almacenamiento en búfer especifican cuánta memoria se debe utilizar para los datos de eventos y la directiva de pérdida para los eventos. El envío hace referencia a la cantidad de tiempo que los eventos estarán en los búferes antes de enviarse a los destinos para su procesamiento.

El seguimiento de causalidad realiza un seguimiento del trabajo en varias tareas. Cuando el seguimiento de causalidad está habilitado, cada evento que se activa tiene un Id. de actividad único en todo el sistema. El Id. de actividad es la combinación de un valor GUID constante en todos los eventos de una tarea y un número de secuencia que se incrementa cada vez que se activa un evento. Cuando una tarea produce trabajo que se debe realizar en otra, el identificador de actividad del elemento principal se envía a la tarea secundaria. La tarea secundaria genera el identificador de actividad del elemento principal la primera vez que se activa un evento.