Compartilhar via


Pacotes do SQL Server Extended Events

Um pacote é um contêiner para objetos para Eventos Estendidos do SQL Server. Há três tipos de pacotes de Eventos Estendidos que incluem o seguinte:

  • package0 - objetos de sistema de Eventos Estendidos. Esse é o pacote padrão.

  • sqlserver – objetos relacionados do SQL Server.

  • sqlos – objetos relacionados do Sistema Operacional (SQLOS) do SQL Server.

Os pacotes são identificados por um nome, um GUID e o módulo binário que contém o pacote. Para obter mais informações, consulte sys.dm_xe_packages (Transact-SQL).

Um pacote pode conter qualquer ou todos os objetos a seguir, que serão discutidos em maiores detalhes posteriormente neste tópico:

  • Eventos

  • Destinos

  • Ações

  • Tipos

  • Predicados

  • Mapas

Objetos de pacotes diferentes podem ser mesclados em uma sessão de evento. Para obter mais informações, consulte Sessões de eventos estendidos do SQL Server.

Conteúdo do pacote

A ilustração a seguir mostra os objetos que podem existir em pacotes, que estão contidos em um módulo. Um módulo pode ser um executável ou uma biblioteca de vínculo dinâmico.

A relação de módulo, pacotes e objeto

Eventos

Eventos são pontos de interesse de monitoramento no caminho de execução de um programa, como o SQL Server. O acionamento de um evento revela o fato de que o ponto de interesse foi alcançado e traz informações do momento de acionamento do evento.

Os eventos somente podem ser usados para rastreamento ou ações de disparo. Essas ações podem ser síncronas ou assíncronas.

ObservaçãoObservação

Um evento não tem qualquer conhecimento das ações que podem ser disparadas em resposta ao acionamento do evento.

Um conjunto de eventos em um pacote não pode ser alterado depois que o pacote for registrado com Eventos Estendidos.

Todos os eventos têm um esquema de versão que define seu conteúdo. Esse esquema é composto por colunas de evento com tipos bem definidos. Um evento de um tipo específico sempre tem que fornecer seus dados exatamente na mesma ordem especificada no esquema. No entanto, um evento de destino não precisa consumir todos os dados fornecidos.

Categorização do evento

O recurso Eventos Estendidos usa um modelo de categorização de evento semelhante ao ETW (Rastreamento de Eventos do Windows). Duas propriedades de evento são usadas para categorização, canal e palavra-chave. O uso dessas propriedades dá suporte à integração de Eventos Estendidos com o ETW e suas ferramentas.

Canal

Um canal identifica a audiência para um evento. Esses canais são descritos na tabela a seguir.

Termo

Definição

Admin

Os eventos Admin são principalmente direcionados aos usuários finais, administradores e suporte. Os eventos encontrados nos canais admin indicam um problema com uma solução bem definida na qual um administrador pode agir. Um exemplo de um evento admin é quando um aplicativo falha ao se conectar a uma impressora. Esses eventos são bem documentados ou têm uma mensagem associada a eles que diz ao leitor o que fazer para retificar o problema.

Operacional

Eventos operacionais são usados para analisar e diagnosticar um problema ou uma ocorrência. Eles podem ser usados para disparar ferramentas ou tarefas com base no problema ou na ocorrência. Um exemplo de um evento operacional é quando uma impressora é adicionada ou removida de um sistema.

Analítico

Eventos analíticos são publicados em grande volume. Eles descrevem operação de programa e são geralmente usados em investigações de desempenho.

Depurador

Eventos depuradores são usados somente por desenvolvedores para diagnosticar um problema de depuração.

ObservaçãoObservação
Eventos do canal de depuração retornam dados de estado internos específicos de implementação. Os esquemas e os dados retornados pelos eventos podem mudar ou se tornar inválidos em versões futuras do SQL Server. Portanto, eventos no canal de depuração podem mudar ou ser removidos em versões futuras do SQL Server, sem aviso prévio.

Palavra-chave

Uma palavra-chave é específica do aplicativo e habilita um agrupamento mais refinado dos eventos relacionados, o que facilita a especificação e recuperação de um evento que você quer usar em uma sessão. A consulta a seguir pode ser usada para obter informações de palavra-chave.

select map_value Keyword from sys.dm_xe_map_values
where name = 'keyword_map'
ObservaçãoObservação

Palavras-chave mapeiam com precisão até o agrupamento atual de eventos de Rastreamento SQL.

Destinos

Destinos são consumidores de evento. Os destinos processam eventos de forma síncrona no thread que aciona o evento ou de forma assíncrona em um thread fornecido pelo sistema. Em geral, o processamento é usado quando uma ordem de dados específica precisa ser mantida. O recurso Eventos Estendidos fornece vários destinos que você pode usar conforme apropriado para direcionar a saída do evento. Para obter mais informações, consulte Destinos de eventos estendidos do SQL Server.

Ações

Uma ação é uma resposta ou série de respostas de programa a um evento. As ações são associadas a um evento e cada evento pode ter um conjunto exclusivo de ações.

ObservaçãoObservação

Ações destinadas a um conjunto específico de eventos não podem ser associadas a eventos desconhecidos.

Uma ação associada a um evento é invocada de forma síncrona no thread que acionou o evento. Há muitos tipos de ação e eles têm uma ampla faixa de recursos. As ações podem:

  • Capturar um despejo da pilha e inspecionar dados.

  • Armazenar informações de estado em um contexto local usando armazenamento variável.

  • Agregar dados de evento.

  • Anexar dados aos dados de evento.

Alguns exemplos comuns e bem conhecidos de ações:

  • Despejo da pilha

  • Detecção de plano de execução (só no SQL Server)

  • Coleção de pilha Transact-SQL (somente SQL Server)

  • Cálculo de estatísticas em tempo de execução

  • Agrupamento de entrada de usuário em exceção

Predicados

Predicados são um conjunto de regras lógicas usado para avaliar eventos quando eles são processados. Isso permite que o usuário do Extend Events capture dados de evento seletivamente com base em critérios específicos.

Predicados podem armazenar dados em um contexto local que podem ser usados para criar predicados que retornam valores verdadeiros uma vez a cada n minutos ou a cada n vezes que um evento é acionado. Esse armazenamento de contexto local também pode ser usado para atualizar o predicado dinamicamente, suprimindo, assim, acionamento de evento futuro, caso os eventos contenham dados semelhantes.

Os predicados têm a capacidade de recuperar informações de contexto, como a ID do thread e os dados específicos do evento. Os predicados são avaliados como expressões Booleanas completas e oferecem suporte a circuito pequeno no primeiro ponto em que toda a expressão é considerada falsa.

ObservaçãoObservação

Predicados com efeitos colaterais não podem ser avaliados se a verificação de um predicado anterior falhar.

Tipos

Como os dados são uma coleção de bytes unidos, o comprimento e as características da coleção de bytes são necessários na interpretação dos dados. Essas informações são encapsuladas no objeto Tipo. Os tipos seguintes são fornecidos para objetos de pacote:

  • event

  • action

  • target

  • pred_source

  • pred_compare

  • type

Para obter mais informações, consulte sys.dm_xe_objects (Transact-SQL).

Mapas

Uma tabela de mapas mapeia um valor interno para uma cadeia de caracteres que habilita um usuário a saber o que o valor representa. Em vez de só poder obter um valor numérico, um usuário pode adquirir uma descrição significativa do valor interno. A consulta a seguir mostra como obter valores de mapa.

select map_key, map_value from sys.dm_xe_map_values
where name = 'lock_mode'

A consulta precedente produz a saída a seguir.

map_key map_value

---------------------

0 NL

1 SCH_S

2 SCH_M

3 S

4 U

5 X

6 IS

7 IU

8 IX

9 SIU

10 SIX

11 UIX

12 BU

13 RS_S

14 RS_U

15 RI_NL

16 RI_S

17 RI_U

18 RI_X

19 RX_S

20 RX_U

21 RX_X

21 RX_X

Usando essa tabela como exemplo, suponhamos que você tenha uma coluna denominada mode e que seu valor seja 5. A tabela indica que 5 é mapeado para X, o que significa que o tipo de bloqueio é Exclusivo.