Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
Azure SQL Database
Instancia
administrada de Azure SQLBase de datos SQL en Microsoft Fabric
Se crea una sesión de Eventos extendidos dentro del proceso del Motor de base de datos de SQL Server que 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 SESSIONyALTER 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.
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 | Sentencia DDL | Descripción |
|---|---|---|
Create |
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 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.
En relación con la ilustración anterior, ten en cuenta lo siguiente:
- La relación entre los objetos del paquete y las sesiones es de muchos a muchos, lo que significa que un objeto de un tipo determinado puede aparecer en varias sesiones y que una sesión puede contener varios objetos.
- El mismo evento (Event 1) o tipo de destino (Target 1) se pueden usar en más de una sesión.
Las sesiones tienen las características siguientes:
- Las acciones y los predicados se vinculan a los eventos de forma individual para cada 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 políticas se adjuntan a las sesiones para gestionar el almacenamiento en búfer y el envío, y el seguimiento causal.
El almacenamiento en búfer se refiere a cómo se almacenan los datos de los eventos mientras una sesión de eventos está en ejecución. Las políticas de almacenamiento en búfer especifican cuánta memoria se debe utilizar para los datos de los eventos y la política de pérdida de 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á activado, cada evento generado tiene un identificador 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 hace que se realice trabajo en otra, el identificador de actividad de la tarea primaria se envía a la tarea secundaria. La tarea secundaria devuelve el identificador de actividad de la tarea primaria la primera vez que emite un evento.
Sesiones de eventos limitadas por tiempo
En Azure SQL Database, Azure SQL Managed Instance y a partir de SQL Server 2025 (17.x), puede crear una sesión de eventos que se detenga automáticamente después de que transcurre el tiempo especificado. Esto ayuda a evitar situaciones en las que las sesiones podrían dejarse ejecutar indefinidamente por error, consumir recursos y generar una gran cantidad de datos.
Cuando los datos del evento generados por una sesión son voluminosos, las sesiones de eventos enlazadas con tiempo le ayudan a capturar datos de diagnóstico más pequeños y dirigidos durante duraciones específicas de tiempo. Puede iniciar manualmente una sesión de eventos con límite de tiempo o usar un trabajo programado en el momento de su elección y con una garantía de que la sesión no se dejará en ejecución indefinidamente.
Para establecer un límite de tiempo de sesión de eventos, especifique el MAX_DURATION argumento al crear o modificar la sesión. Para obtener más información, vea CREATE EVENT SESSION y ALTER EVENT SESSION.
Al igual que cualquier sesión de eventos, puede detener una sesión con límite de tiempo antes de que su tiempo máximo transcurra mediante la instrucción ALTER EVENT SESSION ... STATE = STOP. Si la sesión se vuelve a iniciar, toda la duración especificada por MAX_DURATION debe transcurrir de nuevo antes de que la sesión se detenga automáticamente.
También puede modificar una sesión de eventos existente mediante ALTER EVENT SESSION y especificar un tiempo de duración máximo diferente o quitarlo especificando MAX_DURATION = UNLIMITED. Para modificar la MAX_DURATION configuración, se debe detener la sesión.
Si una sesión de eventos está limitada en el tiempo, la columna max_duration de las vistas de catálogo sys.server_event_sessions y sys.database_event_sessions muestra la duración máxima de la sesión, en segundos. La sesión de eventos tiene una duración ilimitada si el valor es cero.