Visão geral de eventos estendidos

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do Azure

A arquitetura de Eventos Estendidos (XEvents) permite que os usuários coletem tantos ou tão poucos dados quanto necessário para monitorar, identificar ou solucionar problemas de desempenho no SQL Server, no Banco de Dados SQL do Azure e na Instância Gerenciada de SQL do Azure. Os eventos estendidos são altamente configuráveis, leves e escalam bem. Para obter mais informações, confira Arquitetura de eventos estendidos.

Os eventos estendidos substituem os recursos preteridos Rastreamento do SQL e SQL Server Profiler.

Para começar a usar Eventos Estendidos, use o Início rápido: Eventos Estendidos.

Benefícios de Eventos Estendidos do

O Eventos Estendidos é um sistema leve de monitoramento de desempenho que usa recursos mínimos do sistema e, ao mesmo tempo, fornece uma visão detalhada e detalhada do mecanismo de banco de dados. O SQL Server Management Studio fornece uma interface gráfica do usuário para Eventos Estendidos para criar. modificar e descartar sessões de eventos e exibir e analisar dados de sessão. Para saber mais sobre o suporte a Eventos Estendidos no Management Studio, consulte:

Conceitos de eventos estendidos

Eventos Estendidos são criados com base em conceitos existentes do Rastreamento de Eventos para Windows, como um evento ou um consumidor do evento, e introduz novos conceitos como ação e predicado.

A tabela a seguir fornece referências de documentação para compreender os conceitos em Eventos Estendidos.

Artigo Descrição
Pacotes de Eventos Estendidos Descreve os pacotes de Eventos Estendidos que contêm objetos. Esses objetos são usados para obter e processar dados quando uma sessão de Eventos Estendidos está em execução.
Destinos de Eventos Estendidos Descreve os consumidores de evento que podem receber dados durante uma sessão de evento.
Mecanismo de Eventos Estendidos Descreve o mecanismo que implementa e gerencia uma sessão de Eventos Estendidos.
Sessões de Eventos Estendidos Descreve a sessão de Eventos Estendidos.

Arquitetura de eventos estendidos

Eventos Estendidos é o nome que usamos para um sistema geral de manipulação de eventos para sistemas de servidores. A infraestrutura de Eventos Estendidos oferece suporte à correlação de dados a partir do mecanismo de banco de dados e, em certas condições, à correlação de dados entre sistema operacional e aplicativos de banco de dados. No caso do sistema operacional, a saída de Eventos Estendidos deve ser direcionada para o ETW (Rastreamento de Eventos para Windows). O ETW ainda pode correlacionar os dados de eventos com o sistema operacional ou os dados de eventos de aplicativos.

Todos os aplicativos têm pontos de execução que são úteis dentro e fora de um aplicativo. Dentro do aplicativo, o processamento assíncrono pode ser enfileirado usando informações coletadas durante a execução inicial de uma tarefa. Fora do aplicativo, os pontos de execução fornecem informações aos utilitários de monitoramento. As informações são sobre as características de comportamento e de desempenho do aplicativo monitorado.

O sistema Eventos Estendidos oferece suporte a dados de evento fora de um processo. Esses dados são normalmente usados por usuários que estão administrando ou dando suporte a um produto fazendo monitoramento de desempenho ou por usuários que estão desenvolvendo aplicativos em um produto para fins de depuração. Os dados são consumidos ou analisados usando ferramentas como o SQL Server Management Studio, o XEvent Profiler, o Monitor de Desempenho e o T-SQL ou ferramentas de linha de comando do Windows.

Os Eventos Estendidos têm os estes aspectos de design principais:

  • O mecanismo Eventos Estendidos é agnóstico. Já que não é restrito ao conteúdo do evento, o mecanismo pode associar qualquer evento a qualquer destino. Para obter mais informações sobre o mecanismo Eventos Estendidos, consulte Mecanismo Eventos Estendidos.
  • Os eventos são separados dos consumidores de evento, que são chamados destinos em Eventos Estendidos. Isso significa que qualquer destino pode receber qualquer evento. Além disso, qualquer evento gerado pode ser consumido automaticamente pelo destino, que pode registrar em log ou fornecer contexto de evento adicional. Para obter mais informações, consulte Destinos para Eventos Estendidos.
  • Os eventos são distintos quanto à ação quando ocorre um evento. Portanto, qualquer ação pode ser associada a qualquer evento.
  • Os predicados podem filtrar dinamicamente quando os dados de evento devem ser capturados. A filtragem dinâmica confere flexibilidade à infraestrutura de Eventos Estendidos. Para obter mais informações, consulte Pacotes de Eventos Estendidos.

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. Além disso, o mecanismo Eventos Estendidos fornece os seguintes recursos:

  • 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.
  • Integração com e suporte às ferramentas de ETW existentes.
  • Um mecanismo de manipulação de eventos totalmente configurável que usa o Transact-SQL.
  • A capacidade de monitorar processos ativos dinamicamente com efeito mínimo sobre esses processos.
  • Uma sessão de integridade de sistema padrão que é executada sem efeitos de desempenho notáveis. A sessão coleta dados do sistema que você pode usar para ajudar a solucionar problemas de desempenho. Para obter mais informações, veja Usar a sessão system_health.

Tarefas de eventos estendidos

Ao usar Management Studio ou Transact-SQL para executar instruções DDL (linguagem de definição de dados) do Transact-SQL, consumir funções e exibições de gerenciamento dinâmico ou exibições do catálogo, é possível criar soluções simples ou complexas de eventos estendidos do SQL Server para problemas no ambiente do SQL Server.

Descrição da tarefa Artigo
Use o Pesquisador de Objetos para gerenciar sessões de eventos. Gerenciar sessões de evento no Pesquisador de Objetos
Descreve como criar uma sessão de Eventos Estendidos. Sessões de Eventos Estendidos
Descreve como exibir e atualizar dados de destino. Exibir dados de eventos no SQL Server Management Studio
Descreve como usar as ferramentas de Eventos Estendidos para criar e gerenciar suas sessões de Eventos Estendidos do . Ferramentas de Eventos Estendidos
Descreve como alterar uma sessão de Eventos Estendidos. Alterar uma sessão de Eventos Estendidos
Descreve como obter informações sobre os campos associados aos eventos. Obter os campos de todos os eventos
Descreve como descobrir quais eventos estão disponíveis nos pacotes registrados. SELECTs e JOINs de exibições do sistema dos Eventos Estendidos no SQL Server
Descreve como determinar quais destinos de Eventos Estendidos estão disponíveis nos pacotes registrados. Destinos de Eventos Estendidos
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. Exibir os Eventos Estendidos equivalentes às classes de rastreamento de eventos do SQL
Descreve como localizar os parâmetros que você pode definir ao usar a cláusula ADD TARGET em instruções CREATE EVENT SESSION ou ALTER EVENT SESSION. Destinos de Eventos Estendidos
Descreve como converter um script existente de Rastreamento do SQL em uma sessão de Eventos Estendidos. Converter um script existente de Rastreamento do SQL em uma sessão de Eventos Estendidos
Descreve como determinar quais consultas estão mantendo o bloqueio, o plano da consulta e a pilha do Transact-SQL no momento em que o bloqueio foi realizado. Determinar quais consultas estão mantendo bloqueios
Descreve como identificar a origem de bloqueios. Localizar os objetos que detêm a maioria dos bloqueios
Descreve como usar os Eventos Estendidos com o Rastreamento de Eventos do Windows para monitorar a atividade do sistema. Monitorar a atividade do sistema usando Eventos Estendidos
Usar Exibições do Catálogo e DMVs (Exibições de gerenciamento dinâmico) para Eventos Estendidos SELECTs e JOINs de exibições do sistema dos Eventos Estendidos no SQL Server

Use a seguinte consulta T-SQL para retornar todos os eventos possíveis e suas descrições:

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

Exemplos de código podem ser diferentes para Banco de Dados SQL do Azure e Instância Gerenciada de SQL

Alguns exemplos de código Transact-SQL escritos para o SQL Server precisam de pequenas alterações para serem executados no Azure. Uma categoria desses exemplos de código envolve exibições de catálogo cujos prefixos de nome diferem dependendo do tipo de mecanismo de banco de dados:

  • server_ - prefixo para SQL Server e Instância Gerenciada de SQL do Azure
  • database_ - prefixo para Banco de Dados SQL do Azure e Instância Gerenciada de SQL

O Banco de Dados SQL do Azure dá suporte apenas a sessões de eventos com escopo de banco de dados. O SSMS (SQL Server Management Studio) dá suporte completo a sessões de eventos com escopo de banco de dados para o Banco de Dados SQL do Azure: um nó de Eventos Estendidos que contém sessões com escopo de banco de dados aparece em cada banco de dados no Pesquisador de Objetos.

A Instância Gerenciada de SQL do Azure dá suporte a sessões com escopo de banco de dados e de servidor. O SSMS dá suporte total a sessões com escopo de servidor para Instância Gerenciada de SQL: um nó Eventos Estendidos que contém todas as sessões com escopo de servidor aparece na pasta Gerenciamento para cada instância gerenciada no Pesquisador de Objetos.

Observação

As sessões com escopo de servidor são recomendadas para instâncias gerenciadas. As sessões com escopo de banco de dados não são exibidas no Pesquisador de Objetos no SSMS para a Instância Gerenciada de SQL do Azure. As sessões com escopo de banco de dados só podem ser consultadas e gerenciadas com o Transact-SQL ao usar uma instância gerenciada.

Para fins ilustrativos, a tabela a seguir lista e compara dois subconjuntos de exibições de catálogo. Para resumir, os subconjuntos estão restritos aos nomes de exibição que também contêm a cadeia de caracteres _event. Os subconjuntos têm prefixos de nome diferentes porque oferecem suporte a diferentes tipos de mecanismos de banco de dados.

Nome no SQL Server e na Instância Gerenciada de SQL do Azure Nome no Banco de Dados SQL do Azure e na Instância Gerenciada de SQL do Azure
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

As duas listas na tabela anterior são precisas em março de 2022. Para obter uma lista atualizada, execute a seguinte instrução SELECT 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;