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ń.

    Uwaga / Notatka

    W Azure SQL Database oraz w bazie danych SQL w Microsoft Fabric instrukcja USE nie jest dostępna. Zamiast tego połącz się bezpośrednio z bazą danych tempdb i bazą danych master osobno. Uruchom każdą partię próbki kodu na połączeniu dla bazy danych określonej przez instrukcję USE.

    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