Monitorizar a Atividade do Sistema Usando Eventos Estendidos

Aplica-se a:SQL ServerBase de Dados SQL do AzureAzure SQL Managed InstanceBase de dados SQL no Microsoft Fabric

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

Realizar estas tarefas envolve utilizar o Editor de Consultas no SQL Server Management Studio para realizar o seguinte procedimento. O procedimento também requer usar o prompt de comandos para executar comandos ETW.

Monitorizar a atividade do sistema usando Eventos Estendidos

  1. No Editor de Consultas, emita as seguintes instruções para criar uma sessão de eventos e adicionar dois eventos. Estes eventos, checkpoint_begin e checkpoint_end, são acionados no início e no fim de um ponto de controlo de base 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 alvo de bucketing com 32 buckets para contar o número de checkpoints com base no ID da base 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. Utilize os seguintes comandos para adicionar o alvo ETW. Isto permitirá ver os eventos de início e fim, que são usados para determinar quanto tempo demora o ponto de controlo.

    ALTER EVENT SESSION test0  
    ON SERVER  
    ADD TARGET package0.etw_classic_sync_target  
    go  
    
  4. Emita as seguintes declarações para iniciar a sessão e começar a recolha de eventos.

    ALTER EVENT SESSION test0  
    ON SERVER  
    STATE = start  
    go  
    
  5. Emita as seguintes instruções para fazer disparar três eventos.

    Observação

    No Base de Dados SQL do Azure e na base de dados SQL no Microsoft Fabric, a instrução USE não está disponível. Em vez disso, liga-te diretamente à base de dados tempdb e à base de dados master, separadamente. Execute cada lote da amostra de código na ligação da base de dados indicada pela instrução USE.

    USE tempdb  
          checkpoint  
    go  
    USE master  
          checkpoint  
          checkpoint  
    go  
    
  6. Emita as seguintes declarações para consultar 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 comandos, emita os seguintes comandos para visualizar os dados ETW.

    Observação

    Para obter ajuda para o comando tracerpt, no prompt de comandos, insira 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 seguintes instruções para interromper a sessão do evento e removê-la do servidor.

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