Partilhar via


Monitorizar a Atividade do Sistema Usando Eventos Estendidos

Aplica-se a:SQL ServerAzure SQL DatabaseAzure 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 as instruções CREATE EVENT SESSION, ALTER EVENT SESSION e DROP EVENT SESSION são utilizadas.

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.

    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  
    

Ver também

CRIAR SESSÃO DE EVENTO (Transact-SQL)
ALTER SESSÃO DE EVENTOS (Transact-SQL)
SESSÃO DE DROP EVENT (Transact-SQL)
Exibições estendidas do catálogo de eventos (Transact-SQL)
Exibições de gerenciamento dinâmico de eventos estendidos
Destinos de eventos estendidos do SQL Server