Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
Banco 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.
- Banco de Dados SQL do Azure e banco de dados SQL no Fabric
- Instância Gerenciada de SQL do Azure
- SQL Server
| 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.
- Banco de Dados SQL do Azure e banco de dados SQL no Fabric
- Instância Gerenciada de SQL do Azure
- SQL Server
| 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:
- Banco de Dados SQL do Azure e banco de dados SQL no Fabric
- Instância Gerenciada de SQL do Azure
- SQL Server
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_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 |
Conteúdo relacionado
- Exibições de gerenciamento dinâmico de eventos estendidos
- Exibições do catálogo de eventos estendidos (Transact-SQL)
- Mistérios do SQL: rastreamento de causalidade vs. sequência de eventos para sessões do XEvent
- Analisar e evitar deadlocks no Banco de Dados SQL do Azure e no Banco de Dados SQL do Fabric
- Início rápido: Eventos Estendidos
- Criar uma sessão de evento com um destino event_file no Armazenamento do Azure
- Eventos estendidos no SQL do Azure
- XELite: biblioteca de plataforma cruzada para ler XEvents de arquivos XEL ou fluxos ao vivo do SQL.