Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
Uma sessão de Eventos Estendidos é criada no processo do Mecanismo de Banco de Dados do SQL Server que hospeda o mecanismo de Eventos Estendidos. Os seguintes aspetos de uma sessão de Eventos Estendidos fornecem um contexto para entender a infraestrutura de Eventos Estendidos e o processamento que ocorre:
Estados da sessão. Os diferentes estados em que uma sessão de Eventos Estendidos está quando as declarações
CREATE EVENT SESSIONeALTER EVENT SESSIONsão executadas.Conteúdo e características da sessão. O conteúdo de uma sessão de Eventos Estendidos, como destinos e eventos, e como esses objetos estão relacionados em uma sessão ou entre sessões.
Estados da sessão
A ilustração a seguir mostra os vários estados de uma sessão de Eventos Estendidos.
Referindo-se à figura anterior, observe que o estado da sessão muda à medida que os diferentes comandos DDL (linguagem de definição de dados) são emitidos para uma sessão de evento. A tabela a seguir descreve essas alterações de estado.
| Rótulo da ilustração | Declaração DDL | Description |
|---|---|---|
Create |
CREATE EVENT SESSION |
O processo de host cria um objeto de sessão que contém os metadados fornecidos pelo CREATE EVENT SESSION. O processo de host valida a definição da sessão, valida o nível de permissão do usuário e armazena os master metadados no banco de dados. Neste ponto, a sessão não está ativa. |
Alter |
ALTER EVENT SESSION, STATE=START |
O processo de host inicia a sessão. O processo de host lê os metadados armazenados, valida a definição da sessão, verifica o nível de permissão do usuário e cria a sessão. Os objetos de sessão, como eventos e destinos, são carregados e a manipulação de eventos está ativa. |
Alter |
ALTER EVENT SESSION, STATE=STOP |
O processo de host interrompe a sessão ativa, mas retém os metadados. |
Drop |
DROP EVENT SESSION |
Dependendo se a sessão está ativa ou não, Soltar (DROP SESSION) exclui os metadados e fecha a sessão ativa, ou exclui os metadados da sessão. |
Conteúdo e características da sessão
As sessões de Eventos Estendidos têm limites implícitos em que a configuração de uma sessão não altera a configuração de outra sessão. No entanto, esses limites não impedem que um evento ou um tipo alvo seja usado em mais de uma sessão.
A ilustração a seguir mostra o conteúdo da sessão e a relação entre pacotes e sessões.
Referindo-se à ilustração anterior, tenha em mente que:
- O mapeamento entre objetos de pacote e sessões é muitos para muitos, o que significa que um objeto de um tipo específico pode aparecer em várias sessões, e uma sessão pode conter vários objetos.
- O mesmo evento (Evento 1) ou tipo de destino (Destino 1) pode ser usado em mais de uma sessão.
As sessões têm as seguintes características:
- Ações e predicados são vinculados a eventos por sessão. Se você tiver o Evento 1 na Sessão A com a Ação 1 e o Predicado Z, isso não afetará de forma alguma ter o Evento 1 na Sessão B com a Ação 2 e a Ação 3 sem predicado.
- As políticas são associadas a sessões para lidar com bufferização, despacho e rastreamento de causalidade.
Buffering refere-se a como os dados de evento são armazenados enquanto uma sessão de evento está em execução. As políticas de buffer especificam a quantidade de memória a ser usada para dados de eventos e a política de perda para os eventos. Despacho refere-se à duração do tempo que os eventos permanecem em buffers antes de serem servidos aos alvos para processamento.
O rastreamento de causalidade rastreia o trabalho em várias tarefas. Quando o rastreamento de causalidade está habilitado, cada evento disparado tem um ID de atividade exclusivo em todo o sistema. O ID de atividade é uma combinação de um valor GUID que permanece constante em todos os eventos de uma tarefa e um número de sequência que é incrementado cada vez que um evento é acionado. Quando uma tarefa faz com que o trabalho seja realizado noutra, a ID da atividade do pai é enviada para a tarefa filha. A tarefa filho gera a ID de atividade do pai na primeira vez que dispara um evento.
Sessões de eventos com limite de tempo
A partir do SQL Server 2025 (17.x), pode criar uma sessão de evento que termina automaticamente após o tempo especificado. Isso ajuda a evitar situações em que as sessões podem ser deixadas em execução indefinidamente por engano, consumindo recursos e potencialmente gerando uma grande quantidade de dados.
Quando os dados de evento produzidos por uma sessão são volumosos, as sessões de eventos com limite de tempo ajudam a capturar dados de diagnóstico menores e direcionados para durações de tempo específicas. Você pode iniciar uma sessão de evento com limite de tempo manualmente ou usando um trabalho agendado no momento de sua escolha e com a garantia de que a sessão não será deixada em execução indefinidamente.
Para limitar o tempo de uma sessão de evento, especifique o MAX_DURATION argumento ao criar ou modificar a sessão. Para obter mais informações, consulte CREATE EVENT SESSION e ALTER EVENT SESSION.
Assim como qualquer sessão de evento, você pode interromper uma sessão com limite de tempo antes que seu tempo máximo de duração passe usando a ALTER EVENT SESSION ... STATE = STOP instrução. Se a sessão for iniciada novamente, toda a duração do tempo especificada por MAX_DURATION deve decorrer novamente antes que a sessão seja interrompida automaticamente.
Você também pode modificar uma sessão de evento existente usando ALTER EVENT SESSION e especificar um tempo de duração máxima diferente ou removê-la especificando MAX_DURATION = UNLIMITED. Para modificar a MAX_DURATION configuração, a sessão deve ser interrompida.
Se uma sessão de eventos tiver limite de tempo, a coluna max_duration na vista de catálogo sys.server_event_sessions mostra a duração máxima da sessão em segundos. A sessão de evento tem duração ilimitada se o valor for zero.