Udostępnij za pomocą


Monitorowanie aktywności systemu przy użyciu zdarzeń rozszerzonych

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBaza danych SQL w usłudze Microsoft Fabric

Ta procedura ilustruje, jak zdarzenia rozszerzone mogą być używane z śledzeniem zdarzeń dla systemu Windows (ETW) do monitorowania aktywności systemu. Procedura pokazuje również, jak są używane instrukcje CREATE EVENT SESSION, ALTER EVENT SESSION i DROP EVENT SESSION.

Wykonanie tych zadań obejmuje użycie edytora zapytań w programie SQL Server Management Studio w celu wykonania poniższej procedury. Procedura wymaga również użycia wiersza polecenia do uruchamiania poleceń ETW.

Aby monitorować aktywność systemu przy użyciu zdarzeń rozszerzonych

  1. W Edytorze zapytań wykonaj następujące instrukcje, aby utworzyć sesję zdarzeń i dodać dwa zdarzenia. Te zdarzenia, checkpoint_begin i checkpoint_end, są uruchamiane na początku i na końcu punktu kontrolnego bazy danych.

    CREATE EVENT SESSION test0  
    ON SERVER  
    ADD EVENT sqlserver.checkpoint_begin,  
    ADD EVENT sqlserver.checkpoint_end  
    WITH (MAX_DISPATCH_LATENCY = 1 SECONDS)  
    go  
    
  2. Dodaj docelowy zasobnik z 32 zasobnikami, aby zliczyć liczbę punktów kontrolnych na podstawie identyfikatora bazy danych.

    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. Wydaj następujące instrukcje, aby dodać cel ETW. Umożliwi to wyświetlanie zdarzeń początkowych i końcowych, które służą do określania, jak długo trwa punkt kontrolny.

    ALTER EVENT SESSION test0  
    ON SERVER  
    ADD TARGET package0.etw_classic_sync_target  
    go  
    
  4. Wydaj następujące instrukcje, aby rozpocząć sesję i rozpocząć zbieranie zdarzeń.

    ALTER EVENT SESSION test0  
    ON SERVER  
    STATE = start  
    go  
    
  5. Wydaj następujące instrukcje, aby spowodować uruchomienie trzech zdarzeń.

    USE tempdb  
          checkpoint  
    go  
    USE master  
          checkpoint  
          checkpoint  
    go  
    
  6. Wydaj następujące polecenia, aby wyświetlić liczbę zdarzeń.

    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. W wierszu polecenia wydaj następujące polecenia, aby wyświetlić dane ETW.

    Uwaga / Notatka

    Aby uzyskać pomoc dotyczącą polecenia tracerpt, w wierszu polecenia wprowadź .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. Wydaj następujące instrukcje, aby zatrzymać sesję zdarzeń i usunąć ją z serwera.

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

Zobacz też

CREATE EVENT SESSION (Transact-SQL)
ALTER EVENT SESSION (Transact-SQL)
DROP EVENT SESSION (Transact-SQL)
Widoki wykazu zdarzeń rozszerzonych (Transact-SQL)
Dynamiczne widoki zarządzania zdarzeniami rozszerzonymi
Obiekty docelowe zdarzeń rozszerzonych programu SQL Server