Monitorare l'attività del sistema mediante gli eventi estesi

Si applica a:SQL Serverdatabase SQL di AzureAzure SQL Istanza gestitaDatabase SQL in Microsoft Fabric

In questa procedura viene illustrato come utilizzare gli eventi estesi con Analisi eventi per Windows (ETW) al fine di monitorare l'attività del sistema. La procedura mostra anche come sono utilizzate le istruzioni CREATE EVENT SESSION, ALTER EVENT SESSION e DROP EVENT SESSION.

Il completamento di tali attività comporta l'utilizzo dell'editor di query in SQL SQL Server Management Studio per effettuare la procedura descritta di seguito. La procedura richiede anche l'utilizzo del prompt dei comandi per eseguire comandi ETW.

Per monitorare l'attività del sistema mediante gli eventi estesi

  1. Nell'editor di query eseguire le istruzioni indicate di seguito per creare una sessione eventi e aggiungere due eventi. Tali eventi, ovvero checkpoint_begin e checkpoint_end, vengono generati all'inizio e alla fine di un checkpoint del database.

    CREATE EVENT SESSION test0  
    ON SERVER  
    ADD EVENT sqlserver.checkpoint_begin,  
    ADD EVENT sqlserver.checkpoint_end  
    WITH (MAX_DISPATCH_LATENCY = 1 SECONDS)  
    go  
    
  2. Aggiungere il target di bucketizzazione con 32 bucket per contare il numero di checkpoint in base all'ID del database.

    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. Immettere le istruzioni seguenti per aggiungere il target ETW. Verranno visualizzati gli eventi di inizio e di fine utilizzati per determinare il tempo necessario per il checkpoint.

    ALTER EVENT SESSION test0  
    ON SERVER  
    ADD TARGET package0.etw_classic_sync_target  
    go  
    
  4. Eseguire le istruzioni indicate di seguito per avviare la sessione e iniziare la raccolta degli eventi.

    ALTER EVENT SESSION test0  
    ON SERVER  
    STATE = start  
    go  
    
  5. Emettere le istruzioni seguenti per attivare tre eventi.

    USE tempdb  
          checkpoint  
    go  
    USE master  
          checkpoint  
          checkpoint  
    go  
    
  6. Eseguire le istruzioni indicate di seguito per visualizzare il conteggio degli eventi.

    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. Al prompt dei comandi eseguire i comandi indicati di seguito per visualizzare i dati ETW.

    Nota

    Per ottenere assistenza per il comando tracerpt, al prompt dei comandi digitare 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. Eseguire le istruzioni indicate di seguito per arrestare la sessione eventi e rimuoverla dal server.

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

Vedi anche

CREATE EVENT SESSION (Transact-SQL)
ALTER EVENT SESSION (Transact-SQL)
DROP EVENT SESSION (Transact-SQL)
Viste del catalogo degli eventi estesi (Transact-SQL)
Viste a gestione dinamica degli eventi estesi
Destinazioni degli eventi estesi di SQL Server