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
La arquitectura de eventos extendidos (XEvents) permite a los usuarios recopilar tanto o tan pocos datos como sea necesario para supervisar, identificar o solucionar problemas de rendimiento en SQL Server, Azure SQL Database, Azure SQL Managed Instance y SQL Database en Fabric. 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:
En el caso de Azure SQL Database, Base de datos SQL en Fabric e Instancia administrada de SQL, los ejemplos de código pueden diferir porque los archivos del event_file destino se almacenan en Azure Storage. Para más información, consulte Eventos extendidos en Azure SQL.
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
Los Extended Events se basan en los conceptos existentes de Event Tracing for Windows (ETW), como evento y consumidor de eventos, e introduce 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, consulte Destinos de 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 usar los destinos de eventos extendidos disponibles. | Destinos de eventos extendidos |
| Describe cómo ver y restaurar los datos de destino. | Ver datos de eventos en SQL Server Management Studio |
| Describe la arquitectura de las sesiones de Eventos Extendidos. | Sesiones de Eventos extendidos |
| 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. | SELECT y JOIN desde Vistas del Sistema para 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 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 | SELECT y JOIN desde Vistas del Sistema para Eventos Extendidos |
Vistas de catálogo de eventos extendidos
Los eventos extendidos proporcionan vistas de catálogos. Las vistas de catálogo le indican los metadatos o la definición de la sesión de eventos. Para obtener información sobre las instancias de sesiones de eventos activas, vea Vistas de administración dinámica de eventos extendidos.
| Nombre de la vista de catálogo | Descripción |
|---|---|
| sys.database_event_session_actions | Devuelve una fila para cada acción en cada evento de una sesión de eventos con ámbito de base de datos. |
| sys.database_event_session_events | Devuelve una fila para cada evento de una sesión de eventos con ámbito de base de datos. |
| sys.database_event_session_fields | ** Devuelve una fila para cada columna que se pueda personalizar, establecida explícitamente en los eventos y los destinos de una sesión a nivel de base de datos. |
| sys.database_event_session_targets | Devuelve una fila para cada destino de evento para una sesión de eventos con ámbito de base de datos. |
| sys.database_event_sessions | Devuelve una fila para cada sesión de eventos en el ámbito de la base de datos. |
Vistas de administración dinámica de eventos extendidos
Los eventos extendidos proporcionan varias vistas de administración dinámica (DMV). Las DMV devuelven información sobre las sesiones de eventos activas (iniciadas), como las estadísticas de sesión y de destino.
| Nombre de DMV | Descripción |
|---|---|
| sys.dm_xe_database_session_event_actions | Devuelve información sobre las acciones de sesiones de eventos delimitadas por la base de datos. |
| sys.dm_xe_database_session_events | Devuelve información sobre los eventos de la sesión de eventos con ámbito de la base de datos. |
| sys.dm_xe_database_session_object_columns | Muestra los valores de configuración de los objetos enlazados a una sesión de ámbito de base de datos. |
| sys.dm_xe_database_session_targets | Devuelve información sobre los objetivos de sesión de eventos de ámbito de base de datos. |
| sys.dm_xe_database_sessions | Devuelve una fila para cada sesión de eventos con ámbito de base de datos que se ejecuta en la base de datos actual. |
Permissions
En Azure SQL Database, SQL Database in Fabric, Azure SQL Managed Instance y en SQL Server 2022 y versiones posteriores, Extended Events admite un modelo de permisos granular. Se pueden conceder los permisos siguientes:
CREATE ANY DATABASE EVENT SESSION
DROP ANY DATABASE EVENT SESSION
ALTER ANY DATABASE EVENT SESSION
ALTER ANY DATABASE EVENT SESSION ADD EVENT
ALTER ANY DATABASE EVENT SESSION DROP EVENT
ALTER ANY DATABASE EVENT SESSION ADD TARGET
ALTER ANY DATABASE EVENT SESSION DROP TARGET
ALTER ANY DATABASE EVENT SESSION ENABLE
ALTER ANY DATABASE EVENT SESSION DISABLE
ALTER ANY DATABASE EVENT SESSION OPTION
Para obtener información sobre los controles de cada uno de estos permisos, vea CREATE EVENT SESSION, ALTER EVENT SESSION y DROP EVENT SESSION.
Todos estos permisos se incluyen en el CONTROL permiso de la base de datos, la instancia administrada de SQL o la instancia de SQL Server. El propietario de la base de datos de Azure SQL (dbo), los miembros del rol de base de datos db_owner y los administradores del servidor lógico contienen el permiso de base de datos CONTROL. En una instancia administrada de Azure SQL y en SQL Server, los miembros del sysadmin rol de servidor tienen el CONTROL permiso en la instancia.
Los ejemplos de código pueden diferir para Azure SQL Database, SQL Database en Azure Fabric y SQL Managed Instance.
Algunos ejemplos de código Transact-SQL escritos para SQL Server necesitan pequeños cambios para ejecutarse en Azure SQL Database o SQL Database en Fabric. 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 Instance -
database_- prefijo para Azure SQL Database, Base de Datos SQL en Fabric e Instancia Administrada de SQL
Azure SQL Database y SQL Database en Fabric solo admiten sesiones de eventos con ámbito de base de datos. SQL Server Management Studio (SSMS) admite sesiones de eventos 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 en el Explorador de objetos.
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:
Las sesiones de eventos con ámbito de servidor se recomiendan para Azure SQL Managed Instance.
Las sesiones de eventos con ámbito de base de datos no se muestran en el Explorador de objetos en SSMS para Azure SQL Managed Instance. En una instancia administrada de SQL, las sesiones de eventos con ámbito de base de datos solo se pueden consultar y administrar con Transact-SQL.
Como ilustración, en la tabla siguiente se enumeran y comparan dos subconjuntos de las vistas de catálogo. 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 Base de Datos SQL de Azure, Base de Datos SQL en Fabric e Instancia Administrada de SQL de Azure |
|---|---|
sys.server_event_session_actionssys.server_event_session_eventssys.server_event_session_fieldssys.server_event_session_targetssys.server_event_sessions |
sys.database_event_session_actionssys.database_event_session_eventssys.database_event_session_fieldssys.database_event_session_targetssys.database_event_sessions |
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 y Fabric SQL Database
- Inicio rápido: Eventos extendidos
- Creación de una sesión de eventos con un destino de event_file en Azure Storage
- Eventos extendidos en Azure SQL
- XELite: Biblioteca multiplataforma para leer XEvents de archivos XEL o secuencias en directo de SQL