Delen via


Systeemactiviteit bewaken met behulp van uitgebreide gebeurtenissen

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-database in Microsoft Fabric

In deze procedure ziet u hoe uitgebreide gebeurtenissen kunnen worden gebruikt met Event Tracing for Windows (ETW) om systeemactiviteit te bewaken. De procedure laat ook zien hoe de statements CREATE EVENT SESSION, ALTER EVENT SESSION en DROP EVENT SESSION worden gebruikt.

Het uitvoeren van deze taken omvat het gebruik van Query-editor in SQL Server Management Studio om de volgende procedure uit te voeren. Voor de procedure moet u ook de opdrachtprompt gebruiken om ETW-opdrachten uit te voeren.

Systeemactiviteit bewaken met behulp van uitgebreide gebeurtenissen

  1. Geef in Query-editor de volgende instructies uit om een gebeurtenissessie te maken en twee gebeurtenissen toe te voegen. Deze gebeurtenissen, checkpoint_begin en checkpoint_end, worden aan het begin en einde van een databasecontrolepunt geactiveerd.

    CREATE EVENT SESSION test0  
    ON SERVER  
    ADD EVENT sqlserver.checkpoint_begin,  
    ADD EVENT sqlserver.checkpoint_end  
    WITH (MAX_DISPATCH_LATENCY = 1 SECONDS)  
    go  
    
  2. Voeg het bucketingdoel toe met 32 vakjes om op basis van de database-ID het aantal controlepunten te tellen.

    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. Voer de volgende instructies uit om het ETW-doel toe te voegen. Hiermee kunt u de begin- en eindevenementen zien, die worden gebruikt om te bepalen hoe lang het controlepunt duurt.

    ALTER EVENT SESSION test0  
    ON SERVER  
    ADD TARGET package0.etw_classic_sync_target  
    go  
    
  4. Geef de volgende instructies om de sessie te starten en de gebeurtenisverzameling te starten.

    ALTER EVENT SESSION test0  
    ON SERVER  
    STATE = start  
    go  
    
  5. Geef de volgende opdrachten om ervoor te zorgen dat drie gebeurtenissen worden geactiveerd.

    USE tempdb  
          checkpoint  
    go  
    USE master  
          checkpoint  
          checkpoint  
    go  
    
  6. Geef de volgende opdrachten om het aantal gebeurtenissen weer te geven.

    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. Geef bij de opdrachtprompt de volgende opdrachten uit om de ETW-gegevens weer te geven.

    Opmerking

    Als u hulp wilt krijgen voor de tracerpt-opdracht, voer dan bij de opdrachtprompt tracerpt /? in.

    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. Geef de volgende instructies uit om de gebeurtenissessie te stoppen en deze van de server te verwijderen.

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

Zie ook

GEBEURTENISSESSIE MAKEN (Transact-SQL)
ALTER EVENT SESSION (Transact-SQL)
DROP EVENT SESSION (Transact-SQL)
Weergaven voor uitgebreide gebeurtenissencatalogus (Transact-SQL)
Weergaven voor dynamisch beheer van uitgebreide gebeurtenissen
Uitgebreide SQL Server-gebeurtenissendoelen