Información general sobre eventos extendidos
Se aplica a:
SQL Server (todas las versiones compatibles)
Azure SQL Database Azure SQL Managed Instance ![]()
La arquitectura de eventos extendidos permite a los usuarios recopilar tantos o tan pocos datos como sea necesario para solucionar o identificar un problema de rendimiento en SQL Server, Azure SQL Database y Azure SQL Managed Instance. Los eventos extendidos son muy configurables, ligeros y se escalan muy bien. Para obtener más información, consulte Arquitectura de eventos extendidos.
Los eventos extendidos reemplazan las características de seguimiento y SQL Server Profiler en desuso SQL.
Pruebe XEvents: Inicio rápido: Eventos extendidos en SQL Server.
Nota
Azure SQL Database solo admite sesiones con ámbito de base de datos. Obtenga información sobre cómo los ejemplos de código pueden diferir para Azure SQL Database y SQL Managed Instance y mucho más sobre eventos extendidos en Azure SQL Database.
Ventajas de los eventos extendidos de SQL Server
Eventos extendidos es un sistema ligero de supervisión de rendimiento que usa una cantidad mínima de recursos de rendimiento. SQL Server Management Studio proporciona una interfaz gráfica de usuario para Eventos extendidos que permite crear y modificar sesiones, así como mostrar y analizar los datos de las sesiones. Aquí puede obtener más información sobre esas extensiones:
Conceptos de eventos extendidos
SQL Server Eventos extendidos se basa en conceptos existentes, como un evento o un consumidor de eventos, usa conceptos de Seguimiento de eventos para Windows e introduce nuevos conceptos.
En la tabla siguiente se describen los conceptos de Extended Events.
| Tema | Descripción |
|---|---|
| Paquetes de SQL Server Extended Events | Describe los paquetes de Eventos extendidos que contienen objetos. Estos objetos se usan para obtener y procesar datos cuando se está ejecutando una sesión de Eventos extendidos. |
| Destinos de SQL Server Extended Events | Describe los consumidores de eventos que pueden recibir datos durante una sesión de eventos. |
| Motor de SQL Server Extended Events | Describe el motor que implementa y administra una sesión de Extended Events. |
| Sesiones de SQL Server Extended Events | Describe la sesión de eventos extendidos. |
Arquitectura de eventos extendidos
Eventos extendidos es el nombre con el que denominamos a un sistema general de control de eventos para los sistemas del servidor. La infraestructura de eventos extendidos admite la correlación de datos de SQL Server y, en determinadas condiciones, la correlación de datos del sistema operativo y las aplicaciones de base de datos. En el caso del sistema operativo, la salida de Eventos extendidos debe dirigirse a Seguimiento de eventos para Windows (ETW). ETW se usa para establecer correlaciones entre los datos de eventos y los datos de eventos de la aplicación o del sistema operativo.
Todas las aplicaciones tienen puntos de ejecución que son útiles tanto dentro como fuera de una aplicación. Dentro de la aplicación, puede ponerse en cola el procesamiento asincrónico utilizando información recopilada durante la ejecución inicial de una tarea. Fuera de la aplicación, los puntos de ejecución proporcionan utilidades de supervisión con información. La información está relacionada con las características de rendimiento y comportamiento de la aplicación supervisada.
Extended Events admite la utilización de datos de eventos fuera de un proceso. Normalmente, estos datos los usan los usuarios que administran o admiten un producto mediante la supervisión del rendimiento o el desarrollo de aplicaciones en un producto con fines de depuración. Los datos se consumen o se analizan mediante herramientas como XEvent Profiler y el Monitor de rendimiento, T-SQL o herramientas de línea de comandos de Windows.
Los aspectos clave del diseño de Extended Events son los siguientes:
El motor de Extended Events es independiente del evento. El motor puede enlazar cualquier evento con cualquier destino, ya que el motor no está limitado por el contenido del evento. Para obtener más información sobre el motor de Extended Events, vea SQL Server Extended Events Engine.
Los eventos están separados de los consumidores de eventos, llamados destinos en Extended Events. Esto significa que cualquier destino puede recibir cualquier evento. Además, cualquier evento generado puede ser automáticamente utilizado por el destino, que puede registrar o proporcionar el contexto adicional del evento. Para más información, consulte SQL Server Extended Events Targets.
Los eventos son diferentes de la acción que se lleva a cabo cuando se produce un evento. Por lo tanto, puede asociarse cualquier acción a cualquier evento.
Los predicados pueden filtrar dinámicamente cuándo se deben capturar los datos de evento. El filtrado dinámico se suma a la flexibilidad de la infraestructura de Eventos extendidos. Para obtener más información, vea SQL Server Extended Events Packages.
Extended Events puede generar datos de eventos de forma sincrónica (y procesar de forma asincrónica dichos datos) lo que proporciona una solución flexible para el control de eventos. Además, Extended Events proporciona las características siguientes:
Un planteamiento unificado para controlar los eventos en todo el sistema de servidor, a la vez que habilita a los usuarios para aislar eventos específicos con el objeto de solucionar problemas.
Integración y compatibilidad con las herramientas de ETW existentes.
Un mecanismo de control de eventos totalmente configurable basado en Transact-SQL.
La capacidad para supervisar dinámicamente los procesos activos, ejerciendo al mismo tiempo el mínimo efecto sobre dichos procesos.
Una sesión de estado del sistema predeterminada que se ejecuta sin efectos apreciables en el rendimiento. La sesión recopila datos del sistema que se pueden utilizar para ayudar a solucionar problemas de rendimiento. Para obtener más información, vea Usar la sesión system_health.
Tareas de eventos extendidos
Con Management Studio o Transact-SQL para ejecutar instrucciones de Lenguaje de definición de datos (DDL) de Transact-SQL, consumir funciones y vistas de administración dinámicas, o vistas de catálogo, puede crear soluciones de solución de problemas de eventos extendidos SQL Server simples o complejas para su entorno de SQL Server.
| Descripción de la tarea | Artículo |
|---|---|
| Utilice el Explorador de objetos para administrar sesiones de eventos. | Administrar sesiones de eventos en el Explorador de objetos |
| Describe cómo crear una sesión de Extended Events. | Crear una sesión de eventos extendidos |
| Describe cómo ver y restaurar los datos de destino. | Visualización avanzada de datos de destino de eventos extendidos en SQL Server |
| Describe cómo usar las herramientas de eventos extendidos para crear y administrar las sesiones de eventos extendidos de SQL Server. | Herramientas de eventos extendidos |
| Describe cómo alterar una sesión de Extended Events. | Modificar una sesión de eventos extendidos |
| Describe cómo obtener información acerca de los campos asociados a los eventos. | Obtener los campos de todos los eventos |
| Describe cómo determinar los eventos que están disponibles en los paquetes registrados. | Ver los eventos de los paquetes registrados |
| Describe cómo determinar los destinos de eventos extendidos que están disponibles en los paquetes registrados. | Ver los destinos de eventos extendidos de los paquetes registrados |
| Describe cómo ver los eventos y las acciones de los eventos extendidos que son equivalentes a cada evento de Seguimiento de SQL y sus columnas asociadas. | Ver los eventos extendidos equivalentes a las clases de evento de Seguimiento de SQL |
| Describe cómo determinar los parámetros que puede establecer al usar el argumento ADD TARGET en CREATE EVENT SESSION o ALTER EVENT SESSION. | Obtener los parámetros configurables del argumento ADD TARGET |
| Describe cómo convertir un script de Seguimiento de SQL existente en una sesión de eventos extendidos. | Convertir un script de seguimiento de SQL existente en una sesión de eventos extendidos |
| Describe cómo determinar qué consultas contienen el bloqueo, el plan de la consulta y la pila de Transact-SQL en el momento en que se tomó el bloqueo. | Determinar las consultas que retienen bloqueos |
| Describe cómo identificar el origen de los bloqueas que afectan al rendimiento de la base de datos. | Buscar los objetos que han obtenido más bloqueos |
| Describe cómo usar los eventos extendidos con el seguimiento de eventos para Windows a fin de supervisar la actividad del sistema. | Supervisar la actividad del sistema mediante eventos extendidos |
| Usar las vistas de catálogo y las vistas de administración dinámica (DMV) para eventos extendidos | Instrucciones SELECT y JOIN en vistas del sistema para eventos extendidos en SQL Server |
Use la siguiente consulta de Transact-SQL (T-SQL) para enumerar todos los eventos posibles y sus descripciones:
SELECT
obj1.name as [XEvent-name],
col2.name as [XEvent-column],
obj1.description as [Descr-name],
col2.description as [Descr-column]
FROM
sys.dm_xe_objects as obj1
JOIN sys.dm_xe_object_columns as col2 on col2.object_name = obj1.name
ORDER BY
obj1.name,
col2.name
Los ejemplos de código pueden diferir para Azure SQL Database y SQL Managed Instance
Algunos ejemplos de código de Transact-SQL escritos para SQL Server local necesitan pequeños cambios para ejecutarse en la nube. Una categoría de estos ejemplos de código implica vistas del sistema cuyos prefijos de nombre difieren ligeramente entre los dos sistemas de base de datos:
- - server_ prefijo para SQL Server y Azure SQL Managed Instance
- - database_ prefijo para Azure SQL Database y SQL Managed Instance
Azure SQL Database solo admite sesiones con ámbito de base de datos. SQL Server Management Studio (SSMS) admite completamente sesiones con ámbito de base de datos para Azure SQL Database: un nodo Eventos extendidos que contiene sesiones con ámbito de base de datos aparece en cada base de datos de Explorador de objetos.
Azure SQL Managed Instance admite sesiones con ámbito de base de datos y sesiones con ámbito de servidor. Las sesiones con ámbito de servidor se recomiendan para las instancias administradas. SSMS admite completamente sesiones con ámbito de servidor para SQL Managed Instance: un nodo Eventos extendidos que contiene todas las sesiones con ámbito de servidor aparece en la carpeta Administración de cada instancia administrada de Explorador de objetos.
Nota
Las sesiones con ámbito de base de datos no se muestran en Explorador de objetos en SSMS para Azure SQL Managed Instance. Las sesiones con ámbito de base de datos solo se pueden consultar y administrar con Transact-SQL cuando se usa una instancia administrada.
Como ilustración, en la tabla siguiente se enumeran y comparan dos subconjuntos de las vistas del sistema. Por motivos de brevedad, los subconjuntos están restringidos a los nombres de vista que también contienen la cadena _event. Los subconjuntos tienen prefijos de nombre diferentes porque incluyen los dos sistemas de base de datos diferentes.
| Nombre de SQL Server | Nombre del servicio en la nube |
|---|---|
| server_event_notifications server_event_session_actions server_event_session_events server_event_session_fields server_event_session_targets server_event_sessions server_events server_trigger_events |
database_event_session_actions database_event_session_events database_event_session_fields database_event_session_targets database_event_sessions |
Las dos listas de la tabla anterior son precisas a partir de marzo de 2022. Pero el contenido de esta tabla puede quedar obsoleto, porque no se va a mantener. Para obtener listas precisas, consulte la siguiente instrucción SELECT de T-SQL.
SELECT name
FROM sys.all_objects
WHERE
(name LIKE 'database\_%' { ESCAPE '\' } OR
name LIKE 'server\_%' { ESCAPE '\' })
AND name LIKE '%\_event%' { ESCAPE '\' }
AND type = 'V'
ORDER BY name;
Consulte también
- Vistas de administración dinámica de eventos extendidos
- Vistas de catálogo de eventos extendidos (Transact-SQL)
- SQL Misterios: seguimiento de causalidad frente a secuencia de eventos para sesiones XEvent
- Análisis y prevención de interbloqueos en Azure SQL Database
Pasos siguientes
- Inicio rápido: Eventos extendidos en SQL Server
- Código de destino del archivo de eventos para eventos extendidos en Azure SQL Database
- Eventos extendidos en Base de datos SQL de Azure
- XELite: biblioteca multiplataforma para leer XEvents de archivos XEL o secuencias en directo de SQL; publicada en mayo de 2019.
- Read-SQLXEvent PowerShell cmdlet, publicado en junio de 2019.