Compartilhar via


Visão geral de eventos estendidos

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureBanco de dados SQL no Microsoft Fabric

A arquitetura XEvents (Eventos Estendidos) permite que os usuários coletem o máximo ou o mínimo de dados necessários para monitorar, identificar ou solucionar problemas de desempenho no SQL Server, banco de dados SQL do Azure, Instância Gerenciada de SQL do Azure e banco de dados SQL no Fabric. 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.

Observação

Para o Banco de Dados SQL do Azure, o Banco de Dados SQL no Fabric e a Instância Gerenciada de SQL, os exemplos de código podem ser diferentes porque os arquivos para o event_file destino são armazenados no Armazenamento do Azure. Para obter mais informações, consulte Eventos Estendidos no SQL do Azure.

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

Os Eventos Estendidos se baseiam nos conceitos existentes do ETW (Rastreamento de Eventos para Windows), como evento e consumidor de eventos, e introduzem 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 os destinos de 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 usar destinos de Eventos Estendidos disponíveis. Destinos de Eventos Estendidos
Descreve como exibir e atualizar dados de destino. Exibir dados de eventos no SQL Server Management Studio
Descreve a arquitetura das sessões de Eventos Estendidos. Sessões de Eventos Estendidos
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 para 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 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 para eventos estendidos

Exibições do catálogo de Eventos Estendidos

Os Eventos Estendidos têm várias exibições do catálogo. As exibições do catálogo informam sobre metadados ou definição da sessão de eventos. Para obter informações sobre instâncias de sessões de eventos ativas, consulte as exibições de gerenciamento dinâmico de Eventos Estendidos.

Nome do modo de exibição de catálogo Descrição
sys.database_event_session_actions Retorna uma linha para cada ação em cada evento de uma sessão de eventos com escopo no banco de dados.
sys.database_event_session_events Retorna uma linha para cada evento em uma sessão de eventos com escopo de banco de dados.
sys.database_event_session_fields Retorna uma linha para cada coluna personalizável que foi explicitamente definida em eventos e destinos de uma sessão com escopo de banco de dados.
sys.database_event_session_targets Retorna uma linha para cada destino de evento para uma sessão de evento com escopo de banco de dados.
sys.database_event_sessions Retorna uma linha para cada sessão de evento com escopo de banco de dados.

Exibições de gerenciamento dinâmico de Eventos Estendidos

Os Eventos Estendidos têm várias exibições de gerenciamento dinâmico (DMVs). Os DMVs retornam informações sobre sessões de evento ativas (iniciadas), como estatísticas de sessão e de destino.

Nome da DMV Descrição
sys.dm_xe_database_session_event_actions Retorna informações sobre ações de sessão de evento no escopo do banco de dados.
sys.dm_xe_database_session_events Retorna informações sobre eventos de sessões de eventos com escopo de banco de dados.
sys.dm_xe_database_session_object_columns Mostra os valores de configuração para objetos associados a uma sessão com escopo de banco de dados.
sys.dm_xe_database_session_targets Retorna informações sobre alvos de sessão de evento com escopo de banco de dados.
sys.dm_xe_database_sessions Retorna uma linha para cada sessão de evento com escopo de banco de dados em execução no banco de dados atual.

Permissions

No Banco de Dados SQL do Azure, no Banco de Dados SQL no Fabric, na Instância Gerenciada de SQL do Azure e no SQL Server 2022 e nas versões posteriores, os Eventos Estendidos dão suporte a um modelo de permissão granular. As seguintes permissões podem ser concedidas:

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 saber mais sobre o que cada uma dessas permissões controla, consulte CREATE EVENT SESSION, ALTER EVENT SESSION e DROP EVENT SESSION.

Todas essas permissões são incluídas na CONTROL permissão no banco de dados, na instância gerenciada do SQL ou na instância do SQL Server. No Banco de Dados SQL do Azure, o proprietário do banco de dados (dbo), os membros da função db_owner do banco de dados e os administradores do servidor lógico têm a permissão CONTROL do banco de dados. Na Instância Gerenciada do SQL do Azure e no SQL Server, os membros da função de servidor sysadmin têm a permissão CONTROL na instância.

Exemplos de código podem ser diferentes para o Banco de Dados SQL do Azure, o Banco de Dados SQL no Fabric e a 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 Banco de Dados SQL do Azure ou no Banco de Dados SQL no Fabric. 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 o Banco de Dados SQL do Azure, o Banco de Dados SQL no Fabric e a Instância Gerenciada do SQL

O Banco de Dados SQL do Azure e o Banco de Dados SQL no Fabric dão suporte apenas a sessões de eventos no escopo do banco de dados. O SSMS (SQL Server Management Studio) dá suporte a sessões de evento 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

Sessões de evento com escopo de servidor são recomendadas para a Instância Gerenciada de SQL do Azure.

As sessões de evento com escopo de banco de dados não são exibidas no Object Explorer no SSMS para o Azure SQL Managed Instance. Em uma instância gerenciada de SQL, as sessões de evento com escopo de banco de dados só podem ser consultadas e gerenciadas com o Transact-SQL.

Para fins ilustrativos, a tabela a seguir lista e compara dois subconjuntos de exibições de catálogo. 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, banco de dados SQL no Fabric e Instância Gerenciada de SQL do Azure
sys.server_event_session_actions
sys.server_event_session_events
sys.server_event_session_fields
sys.server_event_session_targets
sys.server_event_sessions
sys.database_event_session_actions
sys.database_event_session_events
sys.database_event_session_fields
sys.database_event_session_targets
sys.database_event_sessions