Información general sobre Eventos extendidos
Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance
La arquitectura de Eventos extendidos (XE) permite a los usuarios recopilar tantos datos como sea necesario para supervisar, solucionar o identificar un problema de rendimiento en SQL Server, Azure SQL Database y Azure SQL Managed Instance. Eventos extendidos es muy configurable, ligero y ofrece una buena escalabilidad. Para obtener más información, consulte Arquitectura de Eventos extendidos.
Los Eventos extendidos reemplazan las características en desuso de Seguimiento de SQL y SQL Server Profiler.
Para empezar a trabajar con Eventos extendidos, usa Inicio rápido: Eventos extendidos.
Nota:
Si usas Azure SQL, descubre cómo los ejemplos de código pueden diferir para Azure SQL Database y SQL Managed Instance y obtén más información sobre Eventos extendidos en Azure SQL Database.
Ventajas de Extended Events
Eventos extendidos es un sistema ligero de supervisión del rendimiento que usa recursos mínimos del sistema y proporcionar una vista detallada del motor de base de datos. SQL Server Management Studio proporciona una interfaz gráfica de usuario para Eventos extendidos que permite crear, modificar y colocar sesiones de eventos, así como mostrar y analizar los datos de las sesiones. Para más información sobre la compatibilidad con Eventos extendidos en Management Studio, consulta:
- Administrar sesiones de eventos en el Explorador de objetos
- Use the SSMS XEvent Profiler (Uso del generador de perfiles XEvent de SSMS)
Conceptos de Eventos extendidos
Eventos extendidos se basa en conceptos existentes de Seguimiento de eventos para Windows, como un evento o consumidor de eventos, a la vez que presenta nuevos conceptos como acción y predicado.
En la tabla siguiente se proporcionan referencias de documentación para comprender los conceptos de Eventos extendidos.
Artículo | Descripción |
---|---|
Paquetes de Eventos extendidos | 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 Eventos extendidos | Describe los consumidores de eventos que pueden recibir datos durante una sesión de eventos. |
Motor de Eventos extendidos | Describe el motor que implementa y administra una sesión de Extended Events. |
Sesiones de Eventos extendidos | 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 del motor de base de datos y, bajo ciertas condiciones, la correlación de datos de las aplicaciones de base de datos y sistema operativo. 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 SQL Server Management Studio, 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 Eventos extendidos, consulta Motor de Eventos extendidos.
- 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 obtener más información, consulta Destinos para Eventos extendidos.
- 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, consulta Paquetes de Eventos extendidos.
Eventos Extendidos 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 completamente configurable de control de eventos que usa 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, consulta Usar la sesión system_health.
Tareas de Eventos extendidos
Si usa Management Studio o Transact-SQL para ejecutar instrucciones de lenguaje de definición de datos (DDL) de Transact-SQL, o para consumir funciones y vistas de administración dinámica o vistas de catálogo, podrá crear soluciones sencillas o complejas de problemas de Eventos extendidos de SQL Server para el ambiente 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. | Sesiones de Eventos extendidos |
Describe cómo ver y restaurar los datos de destino. | Ver datos de eventos en SQL Server Management Studio |
Describe cómo usar las herramientas de Eventos extendidos para crear administrar sesiones de Eventos extendidos. | 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. | Instrucciones SELECT y JOIN en vistas del sistema para Eventos extendidos en SQL Server |
Describe cómo determinar los destinos de eventos extendidos que están disponibles en los paquetes registrados. | Destinos de Eventos extendidos |
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 buscar los parámetros que puedes establecer al usar la cláusula ADD TARGET en CREATE EVENT SESSION o las instrucciones ALTER EVENT SESSION . |
Destinos de Eventos extendidos |
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 las consultas que mantienen el bloqueo, el plan de la consulta y la pila de Transact-SQL en el momento en que se realizó el bloqueo. | Determinar las consultas que retienen bloqueos |
Describe cómo identificar el origen de los bloqueos. | 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 |
Usa la consulta siguiente de T-SQL para enumerar todos los posibles eventos 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
INNER 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 necesitan pequeños cambios para ejecutarse en Azure. Una categoría de estos ejemplos de código implica vistas de catálogo cuyos prefijos de nombre difieren en función del tipo de motor de base de datos:
server_
- prefijo para SQL Server y Azure SQL Managed Instancedatabase_
- prefijo para Azure SQL Database y SQL Managed Instance
Azure SQL Database admite solo sesiones de eventos con ámbito de base de datos. SQL Server Management Studio (SSMS) es totalmente compatible con sesiones de eventos con ámbito de base de datos de Azure SQL Database: en cada base de datos del Explorador de objetos aparece un nodo Eventos extendidos que contiene sesiones con ámbito de base de datos.
Azure SQL Managed Instance admite sesiones tanto con ámbito de base de datos como con ámbito de servidor. SSMS admite completamente sesiones con ámbito de servidor para SQL Managed Instance: en la carpeta Administración de cada instancia administrada del Explorador de objetos aparece un nodo Eventos extendidos que contiene todas las sesiones con ámbito de servidor.
Nota:
En las instancias administradas, se recomienda usar sesiones con ámbito de servidor. Las sesiones con ámbito de base de datos no se muestran en el Explorador de objetos en SSMS para Azure SQL Managed Instance. Este tipo de sesiones 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 de catálogo. 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 admiten diferentes motores de base de datos.
Nombre en SQL Server y Azure SQL Managed Instance | Nombre en Azure SQL Database y Azure SQL Managed Instance |
---|---|
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 eran precisas a partir de marzo de 2022. Para obtener una lista actualizada, ejecuta la siguiente instrucción SELECT
de Transact-SQL:
SELECT name
FROM sys.all_objects
WHERE
(name LIKE 'database[_]%' OR
name LIKE 'server[_]%' )
AND name LIKE '%[_]event%'
AND type = 'V'
AND SCHEMA_NAME(schema_id) = 'sys'
ORDER BY name;
Contenido relacionado
- Vistas de administración dinámica de eventos extendidos
- Vistas de catálogo de eventos extendidos (Transact-SQL)
- Misterios de SQL: seguimiento de causalidad frente a secuencia de eventos para sesiones de XEvent
- Análisis y prevención de interbloqueos en Azure SQL Database
- Inicio rápido: Eventos extendidos
- Código de destino del archivo de evento 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
- Cmdlet de PowerShell Read-SQLXEvent