Nota
O acceso a esta páxina require autorización. Pode tentar iniciar sesión ou modificar os directorios.
O acceso a esta páxina require autorización. Pode tentar modificar os directorios.
Se aplica a:SQL Server
Azure SQL Database
Instancia
administrada de Azure SQLBase de datos SQL en Microsoft Fabric
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 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 | Instrucción 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 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.
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.
Sesiones de eventos limitadas por tiempo
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, consulte 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 por tiempo, la columna max_duration en la vista de catálogo sys.server_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.