Monitorare l'attività del sistema mediante gli eventi estesiMonitor System Activity Using Extended Events

QUESTO ARGOMENTO SI APPLICA A:sìSQL Server (a partire dalla versione 2014)sìDatabase SQL di AzurenoAzure SQL Data Warehouse noParallel Data Warehouse THIS TOPIC APPLIES TO:yesSQL Server (starting with 2014)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

In questa procedura viene illustrato come utilizzare gli eventi estesi con Analisi eventi per Windows (ETW) al fine di monitorare l'attività del sistema.This procedure illustrates how Extended Events can be used with Event Tracing for Windows (ETW) to monitor system activity. Viene inoltre indicata la modalità di utilizzo delle istruzioni CREATE EVENT SESSION, ALTER EVENT SESSION e DROP EVENT SESSION.The procedure also shows how the CREATE EVENT SESSION, ALTER EVENT SESSION, and DROP EVENT SESSION statements are used.

Il completamento di tali attività comporta l'utilizzo dell'editor di query in SQL Server Management StudioSQL Server Management Studio per effettuare la procedura descritta di seguito.Accomplishing these tasks involves using Query Editor in SQL Server Management StudioSQL Server Management Studio to carry out the following procedure. La procedura richiede anche l'utilizzo del prompt dei comandi per eseguire comandi ETW.The procedure also requires using the command prompt to run ETW commands.

Per monitorare l'attività del sistema mediante gli eventi estesiTo monitor system activity using Extended Events

  1. Nell'editor di query eseguire le istruzioni indicate di seguito per creare una sessione eventi e aggiungere due eventi.In Query Editor, issue the following statements to create an event session and add two events. Tali eventi, ovvero checkpoint_begin e checkpoint_end, vengono generati all'inizio e alla fine di un checkpoint del database.These events, checkpoint_begin and checkpoint_end, fire at the beginning and end of a database checkpoint.

    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 la destinazione di bucket con 32 bucket per contare il numero di checkpoint in base all'ID del database.Add the bucketing target with 32 buckets to count the number of checkpoints based on the database ID.

    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. Eseguire le istruzioni indicate di seguito per aggiungere la destinazione ETW.Issue the following statements to add the ETW target. Verranno visualizzati gli eventi di inizio e di fine utilizzati per determinare il tempo necessario per il checkpoint.This will enable you to see the begin and end events, which is used to determine how long the checkpoint takes.

    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.Issue the following statements to start the session and begin event collection.

    ALTER EVENT SESSION test0  
    ON SERVER  
    STATE = start  
    go  
    
  5. Eseguire le istruzioni indicate di seguito per generare tre eventi.Issue the following statements to cause three events to fire.

    USE tempdb  
          checkpoint  
    go  
    USE master  
          checkpoint  
          checkpoint  
    go  
    
  6. Eseguire le istruzioni indicate di seguito per visualizzare il conteggio degli eventi.Issue the following statements to view the event counts.

    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.At the command prompt, issue the following commands to view the ETW data.

    Nota

    Per informazioni sul comando tracerpt , al prompt dei comandi immettere tracerpt /?.To get help for the tracerpt command, at the command prompt, enter 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.Issue the following statements to stop the event session and remove it from the server.

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

Vedere ancheSee Also

CREATE EVENT SESSION (Transact-SQL) CREATE EVENT SESSION (Transact-SQL)
ALTER EVENT SESSION (Transact-SQL) ALTER EVENT SESSION (Transact-SQL)
DROP EVENT SESSION (Transact-SQL) DROP EVENT SESSION (Transact-SQL)
Viste del catalogo degli eventi estesi (Transact-SQL) Extended Events Catalog Views (Transact-SQL)
Viste a gestione dinamica degli eventi estesi Extended Events Dynamic Management Views
Destinazioni degli eventi estesi di SQL Server SQL Server Extended Events Targets