Visão geral de eventos estendidosExtended events overview

APLICA-SE A: simSQL Server simBanco de Dados SQL do Azure SQL nãoAzure Synapse Analytics (SQL DW) nãoData Warehouse Paralelo APPLIES TO: yesSQL Server yesAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

SQL ServerSQL Server A arquitetura de eventos estendidos permite que os usuários coletem um volume de dados tão grande ou tão pequeno quanto necessário para identificar ou solucionar um problema de desempenho.The Extended Events architecture enables users to collect as much or as little data as is necessary to troubleshoot or identify a performance problem. Os Eventos Estendidos são configuráveis e escalam muito bem.Extended Events is configurable, and it scales very well.

Você pode encontrar mais informações sobre Eventos Estendidos em Início Rápido: eventos estendidos no SQL Server.You can find more information about Extended Events on the web at SQL Server Extended Events.

Benefícios de Eventos Estendidos do SQL ServerSQL ServerBenefits of SQL ServerSQL Server Extended Events

Os Eventos Estendidos são um sistema de monitoramento de desempenho de peso leve que usa o mínimo possível de recursos de desempenho.Extended Events is a lightweight performance monitoring system that uses minimal performance resources. Os Eventos Estendidos fornecem duas interfaces gráficas do usuário para criar, modificar, exibir e analisar os dados da sessão.Extended Events provides two graphical user interfaces to create, modify, display, and analyze your session data. Essas interfaces são nomeadas:These interfaces are named:

  • Assistente para Nova SessãoNew Session Wizard
  • Nova SessãoNew Session

Conceitos de eventos estendidosExtended Events Concepts

SQL ServerSQL Server Os Eventos Estendidos são criados com base em conceitos existentes, como um evento ou um consumidor do evento, usam conceitos de Rastreamento de Eventos para Windows e apresentam novos conceitos.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.

A tabela a seguir descreve os conceitos em Eventos Estendidos.The following table describes the concepts in Extended Events.

TópicoTopic DESCRIÇÃODescription
Pacotes de eventos estendidos do SQL ServerSQL Server Extended Events Packages Descreve os pacotes de Eventos Estendidos que contêm objetos.Describes the Extended Events packages that contain objects. Esses objetos são usados para obter e processar dados quando uma sessão de Eventos Estendidos está em execução.These objects are used to obtain and process data when an Extended Events session is running.
Destinos de eventos estendidos do SQL Server
SQL Server Extended Events Targets Descreve os consumidores de evento que podem receber dados durante uma sessão de evento.Describes the event consumers that can receive data during an event session.
Mecanismo de eventos estendidos do SQL Server
SQL Server Extended Events Engine Descreve o mecanismo que implementa e gerencia uma sessão de Eventos Estendidos.Describes the engine that implements and manages an Extended Events session.
Sessões de eventos estendidos do SQL Server
SQL Server Extended Events Sessions. Descreve a sessão de Eventos Estendidos.Describes the Extended Events session.
   

Arquitetura de eventos estendidosExtended Events Architecture

Os Eventos Estendidos são o nome que usamos para um sistema geral de manipulação de eventos para sistemas de servidores.Extended Events is our name for a general event-handling system for server systems. A infraestrutura de Eventos Estendidos oferece suporte à correlação de dados do SQL ServerSQL Servere, em certas condições, à correlação de dados entre sistema operacional e aplicativos de banco de dados.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. No caso do sistema operacional, a saída de Eventos Estendidos deve ser direcionada para o ETW (Rastreamento de Eventos para Windows).In the operating system case, Extended Events output must be directed to Event Tracing for Windows (ETW). O ETW ainda pode correlacionar os dados de eventos com o sistema operacional ou os dados de eventos de aplicativos.ETW can correlate the event data with operating system or application event data.

Todos os aplicativos têm pontos de execução que são úteis dentro e fora de um aplicativo.All applications have execution points that are useful both inside and outside an application. Dentro do aplicativo, o processamento assíncrono pode ser enfileirado usando informações coletadas durante a execução inicial de uma tarefa.Inside the application, asynchronous processing may be enqueued using information that is collected during the initial execution of a task. Fora do aplicativo, os pontos de execução fornecem informações aos utilitários de monitoramento.Outside the application, execution points provide monitoring utilities with information. As informações são sobre as características de comportamento e de desempenho do aplicativo monitorado.The information is about the behavioral and performance characteristics of the monitored application.

O sistema Eventos Estendidos oferece suporte a dados de evento fora de um processo.Extended Events supports using event data outside a process. Esses dados são geralmente usados por:This data is typically used by:

  • Ferramentas de rastreamento, como o Rastreamento do SQL e o Monitor do Sistema.Tracing tools, such as SQL Trace and System Monitor.

  • Ferramentas de log, como o log de eventos do Windows ou o log de erros do SQL ServerSQL Server .Logging tools, such as the Windows event log or the SQL ServerSQL Server error log.

  • Usuários que administram um produto ou desenvolvem aplicativos em um produto.Users administering a product or developing applications on a product.

Os Eventos Estendidos têm os estes aspectos de design principais:Extended Events has the following key design aspects:

  • O mecanismo Eventos Estendidos é agnóstico.The Extended Events engine is event agnostic. Já que não é restrito ao conteúdo do evento, o mecanismo pode associar qualquer evento a qualquer destino.The engine can bind any event to any target, because the engine is not constrained by event content. Para obter mais informações sobre o mecanismo Eventos Estendidos, consulte SQL Server Extended Events Engine.For more information about the Extended Events engine, see SQL Server Extended Events Engine.

  • Os eventos são separados dos consumidores de evento, que são chamados destinos em Eventos Estendidos.Events are separated from event consumers, which are called targets in Extended Events. Isso significa que qualquer destino pode receber qualquer evento.This means that any target can receive any event. Além disso, qualquer evento gerado pode ser consumido automaticamente pelo destino, que pode registrar em log ou fornecer contexto de evento adicional.In addition, any event that is raised can be automatically consumed by the target, which can log or provide additional event context. Para obter mais informações, consulte SQL Server Extended Events Targets.For more information, see SQL Server Extended Events Targets.

  • Os eventos são distintos quanto à ação quando ocorre um evento.Events are distinct from the action to take when an event occurs. Portanto, qualquer ação pode ser associada a qualquer evento.Therefore, any action can be associated with any event.

  • Os predicados podem filtrar dinamicamente quando os dados de evento devem ser capturados.Predicates can dynamically filter when event data should be captured. A filtragem dinâmica confere flexibilidade à infraestrutura de Eventos Estendidos.Dynamic filtering adds to the flexibility of the Extended Events infrastructure. Para obter mais informações, consulte SQL Server Extended Events Packages.For more information, see SQL Server Extended Events Packages.

O mecanismo Eventos Estendidos pode gerar dados de evento de forma síncrona (e processar os dados de forma assíncrona) o que fornece uma solução flexível para manipulação de eventos.Extended Events can synchronously generate event data (and asynchronously process that data) which provides a flexible solution for event handling. Além disso, o mecanismo Eventos Estendidos fornece os seguintes recursos:In addition, Extended Events provides the following features:

  • Uma abordagem unificada no tratamento de eventos em todo o sistema de servidor, permitindo, ao mesmo tempo, que os usuários isolem eventos específicos com a finalidade de solucionar problemas.A unified approach to handling events across the server system, while enabling users to isolate specific events for troubleshooting purposes.

  • Integração com e suporte às ferramentas de ETW existentes.Integration with, and support for existing ETW tools.

  • Um mecanismo de tratamento de evento completamente configurável baseado no Transact-SQLTransact-SQL.A fully configurable event handling mechanism that is based on Transact-SQLTransact-SQL.

  • A capacidade de monitorar processos ativos dinamicamente com efeito mínimo sobre esses processos.The ability to dynamically monitor active processes, while having minimal effect on those processes.

  • Uma sessão de integridade de sistema padrão que é executada sem efeitos de desempenho notáveis.A default system health session that runs without any noticeable performance effects. A sessão coleta dados do sistema que você pode usar para ajudar a solucionar problemas de desempenho.The session collects system data that you can use to help troubleshoot performance issues. Para obter mais informações, veja Usar a sessão system_health.For more information, see Use the system_health Session.

Tarefas de eventos estendidosExtended Events Tasks

Usando o Management StudioManagement Studio ou Transact-SQLTransact-SQL para executar instruções DDL, exibições e funções de gerenciamento dinâmico ou exibições de catálogo Transact-SQLTransact-SQL , é possível criar soluções para problemas simples ou complexos de eventos estendidos do SQL ServerSQL Server para seu ambiente 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.

Descrição da tarefaTask Description TópicoTopic
Use o Pesquisador de Objetos para gerenciar sessões de eventos.Use the Object Explorer to manage event sessions. Gerenciar sessões de evento no Pesquisador de Objetos
Manage event sessions in the Object Explorer
Descreve como criar uma sessão de Eventos Estendidos.Describes how to create an Extended Events session. Criar uma sessão de Eventos Estendidos
Create an Extended Events Session
Descreve como exibir e atualizar dados de destino.Describes how to view and refresh target data. Exibição avançada de dados de destino dos Eventos Estendidos no SQL Server
Advanced Viewing of Target Data from Extended Events in SQL Server
Descreve como usar as ferramentas de Eventos Estendidos para criar e gerenciar suas sessões de Eventos Estendidos do SQL ServerSQL Server .Describes how to use Extended Events tools to create and manage your SQL ServerSQL Server Extended Events sessions. Ferramentas de Eventos Estendidos
Extended Events Tools
Descreve como alterar uma sessão de Eventos Estendidos.Describes how to alter an Extended Events session. Alterar uma sessão de Eventos Estendidos
Alter an Extended Events Session
Descreve como obter informações sobre os campos associados aos eventos.Describes how to get information about the fields associated with the events. Obter os campos de todos os eventos
Get the Fields for All Events
Descreve como descobrir quais eventos estão disponíveis nos pacotes registrados.Describes how to find out what events are available in the registered packages. Exibir os eventos de pacotes registrados
View the Events for Registered Packages
Descreve como determinar quais destinos de Eventos Estendidos estão disponíveis nos pacotes registrados.Describes how to determine what Extended Events targets are available in the registered packages. Exibir os destinos dos Eventos Estendidos de pacotes registradosView the Extended Events Targets for Registered Packages
Descreve como exibir os eventos e as ações dos Eventos Estendidos que são equivalentes a cada evento de Rastreamento do SQL e suas colunas associadas.Describes how to view the Extended Events events and actions that are equivalent to each SQL Trace event and its associated columns. Exibir os Eventos Estendidos equivalentes às classes de rastreamento de eventos do SQL
View the Extended Events Equivalents to SQL Trace Event Classes
Descreve como localizar os parâmetros que você pode definir para o uso do argumento ADD TARGET em CREAT EVENT SESSION ou 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. Obter os parâmetros configuráveis para o argumento ADD TARGETGet the Configurable Parameters for the ADD TARGET Argument
Descreve como converter um script existente de Rastreamento do SQL em uma sessão de Eventos Estendidos.Describes how to convert an existing SQL Trace script to an Extended Events session. Converter um script existente de Rastreamento do SQL em uma sessão de Eventos Estendidos
Convert an Existing SQL Trace Script to an Extended Events Session
Descreve como determinar quais consultas estão mantendo o bloqueio, o plano da consulta e a pilha Transact-SQLTransact-SQL no momento em que o bloqueio foi realizado.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 quais consultas estão mantendo bloqueiosDetermine which queries are holding locks
Descreve como identificar a origem de bloqueios que estão obstruindo o desempenho do banco de dados.Describes how to identify the source of locks that are hindering database performance. Localizar os objetos que detêm a maioria dos bloqueios
Find the Objects That Have the Most Locks Taken on Them
Descreve como usar os Eventos Estendidos com o Rastreamento de Eventos do Windows para monitorar a atividade do sistema.Describes how to use Extended Events with Event Tracing for Windows to monitor system activity. Monitorar a atividade do sistema usando Eventos Estendidos
Monitor System Activity Using Extended Events
Usando Exibições de catálogo e DMVs (Exibições de gerenciamento dinâmico) para eventos estendidosUsing the Catalog views and the Dynamic management views (DMVs) for extended events SELECTs e JOINs de exibições do sistema dos Eventos Estendidos no SQL Server
SELECTs and JOINs From System Views for Extended Events in SQL Server
   

Use a consulta T-SQL (Transact-SQL) a seguir para listar todos os eventos estendidos possíveis e suas descrições:Use the following Transact-SQL (T-SQL) query to list out all possible extended events and their descriptions:

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

Os exemplos de código podem ser diferentes no Banco de Dados SQL do AzureCode examples can differ for Azure SQL Database

Alguns exemplos de código Transact-SQL escritos para SQL Server locais precisam de pequenas alterações para serem executados no serviço de Banco de Dados SQL do Azure na nuvem.Some Transact-SQL code examples written for SQL Server on-premises need small changes to run on Azure SQL Database service in the cloud. Uma categoria desses exemplos de código envolve exibições do sistema cujos prefixos de nome diferem ligeiramente entre os dois sistemas de banco de dados:One catagory of such code examples involves system views whose name prefixess differ slightly between the two database systems:

  • servidor_   -   prefixo para localserver_   -   prefix for on-premises
  • banco de dados_   -   prefixo para o serviço do BD SQL do Azure na nuvem database prefix for Azure SQL DB service in the cloud

Para ilustração, a tabela a seguir lista e compara dois subconjuntos de exibições do sistema.For illustration, the following table lists and compares two subsets of the system views. Para resumir, os subconjuntos estão restritos aos nomes de exibição que também contêm a cadeia de caracteres _event.For brevity, the subsets are restricted to view names that also contains the string _event. Os subconjuntos têm prefixos de nome diferentes porque eles vêm de dois sistemas de banco de dados diferentes.The subsets have differing name prefixes because they come the two different database systems.

Nome do 2017 localName from on-premises 2017 Nome do serviço de nuvemName 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
   

As duas listas na tabela anterior são precisas em junho de 2019.The two lists in the preceding table are accurate as of June 2019. Mas o conteúdo da tabela aqui pode ficar desatualizado, pois seu conteúdo não será mantido aqui.But the table contents here may become outdated, because its content will not be maintained here. Para obter listas precisas, execute a seguinte instrução T-SQL SELECT.For accurate lists, run the following T-SQL SELECT statement. Execute SELECT duas vezes, uma vez em cada sistema de banco de dados.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 TambémSee Also

Aplicativos da camada de dados Data-tier Applications
Suporte ao DAC para objetos e versões do SQL Server DAC Support For SQL Server Objects and Versions
Implantar um aplicativo da camada de dados Deploy a Data-tier Application
Monitorar aplicativos da camada de dados Monitor Data-tier Applications
 
Exibições de gerenciamento dinâmico de eventos estendidos Extended Events Dynamic Management Views
Exibições do catálogo de eventos estendidos (Transact-SQL)Extended Events Catalog Views (Transact-SQL)
 
XELite: Biblioteca multiplataforma para ler XEvents de arquivos XEL ou fluxos ao vivo do SQL, lançado em maio de 2019.XELite: Cross-platform library to read XEvents from XEL files or live SQL streams, released May 2019.
Cmdlet do PowerShell de leitura SQLXEvent, lançado em junho de 2019. Read-SQLXEvent PowerShell cmdlet, released June 2019.
Mistérios do SQL: acompanhamento de causalidade versus sequência de eventos para sessões de XEvent (blog publicado em 1º de abril de 2019)Causality tracking vs Event Sequence for XEvent Sessions (blog published April 1, 2019)