Monitorar a atividade do sistema usando Eventos Estendidos

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

Este procedimento ilustra como os Eventos Estendidos podem ser usados com o Rastreamento de Eventos do Windows (ETW) para monitorar a atividade do sistema. O procedimento também mostra como as instruções CREATE EVENT SESSION, ALTER EVENT SESSION e DROP EVENT SESSION são usadas.

A realização dessas tarefas envolve o uso do Editor de Consultas no SQL Server Management Studio para aplicar o procedimento a seguir. O procedimento também requer o uso do prompt de comando para executar comandos ETW.

Para monitorar a atividade do sistema usando Eventos Estendidos

  1. No Editor de Consultas, emita as instruções a seguir para criar uma sessão de eventos e adicionar dois eventos. Esses eventos, checkpoint_begin e checkpoint_end, são acionados no início e no final de um ponto de verificação de banco de dados.

    CREATE EVENT SESSION test0  
    ON SERVER  
    ADD EVENT sqlserver.checkpoint_begin,  
    ADD EVENT sqlserver.checkpoint_end  
    WITH (MAX_DISPATCH_LATENCY = 1 SECONDS)  
    go  
    
  2. Adicione o destino da segmentação com 32 segmentos, para contar o número de pontos de verificação com base na ID de banco de dados.

    ALTER EVENT SESSION test0  
    ON SERVER  
    ADD TARGET package0.histogram  
    (  
          SET slots = 32, filtering_event_name = 'sqlserver.checkpoint_end', source_type = 0, source = 'database_id'  
    )  
    go  
    
  3. Execute os seguintes comandos para adicionar o destino ETW. Isso lhe permitirá examinar os eventos de início e fim, utilizados para determinar a duração do ponto de verificação.

    ALTER EVENT SESSION test0  
    ON SERVER  
    ADD TARGET package0.etw_classic_sync_target  
    go  
    
  4. Execute os comandos a seguir para iniciar a sessão e a coleta de eventos.

    ALTER EVENT SESSION test0  
    ON SERVER  
    STATE = start  
    go  
    
  5. Emita as instruções a seguir para provocar o acionamento de três eventos.

    Observação

    No Banco de Dados SQL do Azure e no SQL Database no Microsoft Fabric, a USE instrução não está disponível. Em vez disso, conecte-se diretamente ao banco de dados tempdb e ao banco de dados master separadamente. Execute cada lote do exemplo de código na conexão do banco de dados nomeado por sua instrução USE.

    USE tempdb  
          checkpoint  
    go  
    USE master  
          checkpoint  
          checkpoint  
    go  
    
  6. Execute os seguintes comandos para exibir a contagem de eventos.

    SELECT CAST(xest.target_data AS xml) Bucketizer_Target_Data_in_XML  
    FROM sys.dm_xe_session_targets xest  
    JOIN sys.dm_xe_sessions xes ON xes.address = xest.event_session_address  
    JOIN sys.server_event_sessions ses ON xes.name = ses.name  
    WHERE xest.target_name = 'histogram' AND xes.name = 'test0'  
    go  
    
  7. No prompt de comando, emita os comandos a seguir para exibir os dados do ETW.

    Observação

    Para obter ajuda sobre o comando tracerpt , no prompt de comando, digite tracerpt /?.

    logman query -ets --- List the ETW sessions. This is optional.  
    logman update XE_DEFAULT_ETW_SESSION -fd -ets --- Flush the ETW log.  
    tracerpt %temp%\xeetw.etl -o xeetw.txt --- Dump the events so they can be seen.  
    
  8. Emita as instruções a seguir para parar a sessão de eventos e removê-la do servidor.

    ALTER EVENT SESSION test0  
    ON SERVER  
    STATE = STOP  
    go  
    
    DROP EVENT SESSION test0  
    ON SERVER  
    go