Introducción a los eventos extendidosExtended events overview

SE APLICA A: síSQL Server síAzure SQL Database noAzure SQL Data Warehouse noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

SQL ServerSQL Server La arquitectura de Eventos extendidos permite a los usuarios recopilar tantos datos como sea necesario para solucionar o identificar un problema de rendimiento.The Extended Events architecture enables users to collect as much or as little data as is necessary to troubleshoot or identify a performance problem. Eventos extendidos es configurable y ofrece una muy buena escalabilidad.Extended Events is configurable, and it scales very well.

Encontrará más información sobre Eventos extendidos en Inicio rápido: eventos extendidos en SQL Server.You can find more information about Extended Events at Quickstart: Extended events in SQL Server.

Ventajas de SQL ServerSQL Server Extended EventsBenefits of SQL ServerSQL Server Extended Events

Eventos extendidos es un sistema ligero de supervisión de rendimiento que usa una cantidad mínima de recursos de rendimiento.Extended Events is a lightweight performance monitoring system that uses minimal performance resources. Eventos extendidos proporciona dos interfaces de usuario gráficas para crear, modificar, mostrar y analizar los datos de la sesión.Extended Events provides two graphical user interfaces to create, modify, display, and analyze your session data. Estas interfaces se denominan:These interfaces are named:

  • Asistente para nueva sesiónNew Session Wizard
  • Nueva sesiónNew Session

Conceptos de Extended EventsExtended Events Concepts

SQL ServerSQL Server Eventos extendidos se basa en conceptos existentes, como un evento o consumidor de eventos, usa los conceptos de Seguimiento de eventos para Windows y presenta nuevos conceptos.Extended Events builds on existing concepts, such as an event or an event consumer, uses concepts from Event Tracing for Windows, and introduces new concepts.

En la tabla siguiente se describen los conceptos de Extended Events.The following table describes the concepts in Extended Events.

TemaTopic DescripciónDescription
Paquetes de SQL Server Extended EventsSQL Server Extended Events Packages Describe los paquetes de Eventos extendidos que contienen objetos.Describes the Extended Events packages that contain objects. Estos objetos se usan para obtener y procesar datos cuando se está ejecutando una sesión de Eventos extendidos.These objects are used to obtain and process data when an Extended Events session is running.
Destinos de SQL Server Extended EventsSQL Server Extended Events Targets Describe los consumidores de eventos que pueden recibir datos durante una sesión de eventos.Describes the event consumers that can receive data during an event session.
Motor de SQL Server Extended EventsSQL Server Extended Events Engine Describe el motor que implementa y administra una sesión de Extended Events.Describes the engine that implements and manages an Extended Events session.
Sesiones de SQL Server Extended EventsSQL Server Extended Events Sessions Describe la sesión de eventos extendidos.Describes the Extended Events session.
   

Arquitectura de eventos extendidosExtended Events Architecture

Eventos extendidos es el nombre con el que denominamos a un sistema general de control de eventos para los sistemas del servidor.Extended Events is our name for a general event-handling system for server systems. La infraestructura de Extended Events admite la correlación de datos de SQL ServerSQL Servery bajo ciertas condiciones, la correlación de datos de las aplicaciones de base de datos y sistema operativo.The Extended Events infrastructure supports the correlation of data from SQL ServerSQL Server, and under certain conditions, the correlation of data from the operating system and database applications. En el caso del sistema operativo, la salida de Eventos extendidos debe dirigirse a Seguimiento de eventos para Windows (ETW).In the operating system case, Extended Events output must be directed to Event Tracing for 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.ETW can correlate the event data with operating system or application event data.

Todas las aplicaciones tienen puntos de ejecución que son útiles tanto dentro como fuera de una aplicación.All applications have execution points that are useful both inside and outside an application. 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.Inside the application, asynchronous processing may be enqueued using information that is collected during the initial execution of a task. Fuera de la aplicación, los puntos de ejecución proporcionan utilidades de supervisión con información.Outside the application, execution points provide monitoring utilities with information. La información está relacionada con las características de rendimiento y comportamiento de la aplicación supervisada.The information is about the behavioral and performance characteristics of the monitored application.

Extended Events admite la utilización de datos de eventos fuera de un proceso.Extended Events supports using event data outside a process. Normalmente, estos datos son utilizados por:This data is typically used by:

  • Herramientas de seguimiento, como Monitor de sistema y Seguimiento de SQL.Tracing tools, such as SQL Trace and System Monitor.

  • Herramientas de registro, como el registro de eventos de Windows o el registro de errores de SQL ServerSQL Server .Logging tools, such as the Windows event log or the SQL ServerSQL Server error log.

  • Usuarios que administran un producto o desarrollan aplicaciones de un producto.Users administering a product or developing applications on a product.

Los aspectos clave del diseño de Extended Events son los siguientes:Extended Events has the following key design aspects:

  • El motor de Extended Events es independiente del evento.The Extended Events engine is event agnostic. El motor puede enlazar cualquier evento con cualquier destino, ya que el motor no está limitado por el contenido del evento.The engine can bind any event to any target, because the engine is not constrained by event content. Para obtener más información sobre el motor de Extended Events, vea SQL Server Extended Events Engine.For more information about the Extended Events engine, see SQL Server Extended Events Engine.

  • Los eventos están separados de los consumidores de eventos, llamados destinos en Extended Events.Events are separated from event consumers, which are called targets in Extended Events. Esto significa que cualquier destino puede recibir cualquier evento.This means that any target can receive any event. Además, cualquier evento generado puede ser automáticamente utilizado por el destino, que puede registrar o proporcionar el contexto adicional del evento.In addition, any event that is raised can be automatically consumed by the target, which can log or provide additional event context. Para obtener más información, vea SQL Server Extended Events Targets.For more information, see SQL Server Extended Events Targets.

  • Los eventos son diferentes de la acción que se lleva a cabo cuando se produce un evento.Events are distinct from the action to take when an event occurs. Por lo tanto, puede asociarse cualquier acción a cualquier evento.Therefore, any action can be associated with any event.

  • Los predicados pueden filtrar dinámicamente cuándo se deben capturar los datos de evento.Predicates can dynamically filter when event data should be captured. El filtrado dinámico se suma a la flexibilidad de la infraestructura de Eventos extendidos.Dynamic filtering adds to the flexibility of the Extended Events infrastructure. Para obtener más información, vea SQL Server Extended Events Packages.For more information, see 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.Extended Events can synchronously generate event data (and asynchronously process that data) which provides a flexible solution for event handling. Además, Extended Events proporciona las características siguientes:In addition, Extended Events provides the following features:

  • 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.A unified approach to handling events across the server system, while enabling users to isolate specific events for troubleshooting purposes.

  • Integración y compatibilidad con las herramientas de ETW existentes.Integration with, and support for existing ETW tools.

  • Un mecanismo completamente configurable de control de eventos basado en Transact-SQLTransact-SQL.A fully configurable event handling mechanism that is based on Transact-SQLTransact-SQL.

  • La capacidad para supervisar dinámicamente los procesos activos, ejerciendo al mismo tiempo el mínimo efecto sobre dichos procesos.The ability to dynamically monitor active processes, while having minimal effect on those processes.

  • Una sesión de estado del sistema predeterminada que se ejecuta sin efectos apreciables en el rendimiento.A default system health session that runs without any noticeable performance effects. La sesión recopila datos del sistema que se pueden utilizar para ayudar a solucionar problemas de rendimiento.The session collects system data that you can use to help troubleshoot performance issues. Para obtener más información, vea Usar la sesión system_health.For more information, see Use the system_health Session.

Tareas de Extended EventsExtended Events Tasks

Si mediante Management StudioManagement Studio o Transact-SQLTransact-SQL ejecuta instrucciones de lenguaje de definición de datos (DDL) de Transact-SQLTransact-SQL , funciones y vistas de administración dinámica, o vistas de catálogo, podrá crear soluciones sencillas o complejas de problemas de SQL ServerSQL Server Extended Events para el entorno de SQL ServerSQL Server .Using Management StudioManagement Studio or Transact-SQLTransact-SQL to execute Transact-SQLTransact-SQL Data Definition Language (DDL) statements, dynamic management views and functions, or catalog views, you can create simple or complex SQL ServerSQL Server Extended Events troubleshooting solutions for your SQL ServerSQL Server environment.

Descripción de la tareaTask Description TemaTopic
Utilice el Explorador de objetos para administrar sesiones de eventos.Use the Object Explorer to manage event sessions. Administrar sesiones de eventos en el Explorador de objetosManage Event Sessions in the Object Explorer
Describe cómo crear una sesión de Extended Events.Describes how to create an Extended Events session. Crear una sesión de eventos extendidosCreate an Extended Events Session
Describe cómo ver y restaurar los datos de destino.Describes how to view and refresh target data. Visualización avanzada de datos de destino de eventos extendidos en SQL ServerAdvanced Viewing of Target Data from Extended Events in SQL Server
Describe cómo usar las herramientas de Extended Events para crear administrar sesiones de SQL ServerSQL Server Extended Events.Describes how to use Extended Events tools to create and manage your SQL ServerSQL Server Extended Events sessions. Herramientas de eventos extendidosExtended Events Tools
Describe cómo alterar una sesión de Extended Events.Describes how to alter an Extended Events session. Modificar una sesión de eventos extendidosAlter an Extended Events Session
Describe cómo obtener información acerca de los campos asociados a los eventos.Describes how to get information about the fields associated with the events. Obtener los campos de todos los eventosGet the Fields for All Events
Describe cómo determinar los eventos que están disponibles en los paquetes registrados.Describes how to find out what events are available in the registered packages. Ver los eventos de los paquetes registradosView the Events for Registered Packages
Describe cómo determinar los destinos de eventos extendidos que están disponibles en los paquetes registrados.Describes how to determine what Extended Events targets are available in the registered packages. Ver los destinos de eventos extendidos de los paquetes registradosView the Extended Events Targets for Registered Packages
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.Describes how to view the Extended Events events and actions that are equivalent to each SQL Trace event and its associated columns. Ver los eventos extendidos equivalentes a las clases de evento de Seguimiento de SQLView the Extended Events Equivalents to SQL Trace Event Classes
Describe cómo determinar los parámetros que puede establecer al usar el argumento ADD TARGET en CREATE EVENT SESSION o ALTER EVENT SESSION.Describes how to find the parameters you can set when you use the ADD TARGET argument in CREATE EVENT SESSION or ALTER EVENT SESSION. Obtener los parámetros configurables del argumento ADD TARGETGet the Configurable Parameters for the ADD TARGET Argument
Describe cómo convertir un script de Seguimiento de SQL existente en una sesión de eventos extendidos.Describes how to convert an existing SQL Trace script to an Extended Events session. Convertir un script de seguimiento de SQL existente en una sesión de eventos extendidosConvert an Existing SQL Trace Script to an Extended Events Session
Describe cómo determinar las consultas que mantienen el bloqueo, el plan de la consulta y la pila de Transact-SQLTransact-SQL en el momento en que se realizó el bloqueo.Describes how to determine which queries are holding the lock, the plan of the query, and the Transact-SQLTransact-SQL stack at the time the lock was taken. Determinar las consultas que retienen bloqueosDetermine Which Queries Are Holding Locks
Describe cómo identificar el origen de los bloqueas que afectan al rendimiento de la base de datos.Describes how to identify the source of locks that are hindering database performance. Buscar los objetos que han obtenido más bloqueosFind the Objects That Have the Most Locks Taken on Them
Describe cómo usar los eventos extendidos con el seguimiento de eventos para Windows a fin de supervisar la actividad del sistema.Describes how to use Extended Events with Event Tracing for Windows to monitor system activity. Supervisar la actividad del sistema mediante eventos extendidosMonitor System Activity Using Extended Events
Usar las vistas de catálogo y las vistas de administración dinámica (DMV) para eventos extendidosUsing the Catalog views and the Dynamic management views (DMVs) for extended events Instrucciones SELECT y JOIN en vistas del sistema para eventos extendidos en SQL ServerSELECTs and JOINs From System Views for Extended Events in SQL Server
   

Ejemplos de código que pueden diferir de Azure SQL DatabaseCode examples can differ for Azure SQL Database

Algunos ejemplos de código de Transact-SQL escritos para SQL Server local necesitan pequeños cambios para ejecutarse en el servicio Azure SQL Database en la nube.Some Transact-SQL code examples written for SQL Server on-premises need small changes to run on Azure SQL Database service in the cloud. 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:One catagory of such code examples involves system views whose name prefixess differ slightly between the two database systems:

  • server_   -   prefijo para la instancia localserver_   -   prefix for on-premises
  • database_   -   prefijo para el servicio Azure SQL DB en la nubedatabase_   -   prefix for Azure SQL DB service in the cloud

Como ilustración, en la tabla siguiente se enumeran y comparan dos subconjuntos de las vistas del sistema.For illustration, the following table lists and compares two subsets of the system views. Por motivos de brevedad, los subconjuntos están restringidos a los nombres de vista que también contienen la cadena _event.For brevity, the subsets are restricted to view names that also contains the string _event. Los subconjuntos tienen prefijos de nombre diferentes porque incluyen los dos sistemas de base de datos diferentes.The subsets have differing name prefixes because they come the two different database systems.

Nombre del entorno local 2017Name from on-premises 2017 Nombre del servicio en la nubeName from cloud service
server_event_notificationsserver_event_notifications
server_event_session_actionsserver_event_session_actions
server_event_session_eventsserver_event_session_events
server_event_session_fieldsserver_event_session_fields
server_event_session_targetsserver_event_session_targets
server_event_sessionsserver_event_sessions
server_eventsserver_events
server_trigger_eventsserver_trigger_events
database_event_session_actionsdatabase_event_session_actions
database_event_session_eventsdatabase_event_session_events
database_event_session_fieldsdatabase_event_session_fields
database_event_session_targetsdatabase_event_session_targets
database_event_sessionsdatabase_event_sessions
   

Las dos listas de la tabla anterior son precisas a partir de junio del 2019.The two lists in the preceding table are accurate as of June 2019. Pero el contenido de esta tabla puede quedar obsoleto, porque su contenido no se va a mantener.But the table contents here may become outdated, because its content will not be maintained here. Para obtener listas precisas, ejecute la siguiente instrucción SELECT de T-SQL.For accurate lists, run the following T-SQL SELECT statement. Ejecute SELECT dos veces, una en cada sistema de base de datos.Run the SELECT twice, once on each database system.

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énSee Also

Aplicaciones de capa de datosData-tier Applications
Compatibilidad de DAC con las versiones y objetos de SQL ServerDAC Support For SQL Server Objects and Versions
Implementar una aplicación de capa de datosDeploy a Data-tier Application
Supervisar aplicaciones de capa de datosMonitor Data-tier Applications
 
Vistas de administración dinámica de eventos extendidosExtended Events Dynamic Management Views
Vistas de catálogo de eventos extendidos (Transact-SQL)Extended Events Catalog Views (Transact-SQL)
 
XELite: biblioteca multiplataforma para leer XEvents de archivos XEL o secuencias en directo de SQL; publicada en mayo de 2019.XELite: Cross-platform library to read XEvents from XEL files or live SQL streams, released May 2019.
Read-SQLXEvent PowerShell cmdlet, publicado en junio de 2019.Read-SQLXEvent PowerShell cmdlet, released June 2019.
Misterios de SQL: Seguimiento de causalidad frente a secuencia de eventos para sesiones de XEvent (blog publicado el 1 de abril de 2019)SQL Mysteries: Causality tracking vs Event Sequence for XEvent Sessions (blog published April 1, 2019)