Aracılığıyla paylaş


Genişletilmiş Olayları Kullanarak Sistem Etkinliğini İzleme

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'te SQL veritabanı

Bu yordam, Genişletilmiş Olayların sistem etkinliğini izlemek için Windows için Olay İzleme (ETW) ile nasıl kullanılabileceğini gösterir. Prosedür ayrıca CREATE EVENT SESSION, ALTER EVENT SESSION ve DROP EVENT SESSION deyimlerinin nasıl kullanıldığını da gösterir.

Bu görevlerin gerçekleştirilmesi, aşağıdaki yordamı gerçekleştirmek için SQL Server Management Studio'da Sorgu Düzenleyicisi'ni kullanmayı içerir. İşlem, ETW komutlarını çalıştırmak için komut istemcisinin kullanılmasını da gerektirir.

Genişletilmiş Olayları kullanarak sistem etkinliğini izlemek için

  1. Sorgu Düzenleyicisi'nde bir olay oturumu oluşturmak ve iki olay eklemek için aşağıdaki deyimleri yayımlayın. Bu olaylar, checkpoint_begin ve checkpoint_end, veritabanı denetim noktasının başında ve sonunda tetiklenir.

    CREATE EVENT SESSION test0  
    ON SERVER  
    ADD EVENT sqlserver.checkpoint_begin,  
    ADD EVENT sqlserver.checkpoint_end  
    WITH (MAX_DISPATCH_LATENCY = 1 SECONDS)  
    go  
    
  2. Veritabanı kimliğine göre kontrol noktalarının sayısını belirlemek amacıyla 32 kovayla gruplama hedefini ekleyin.

    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. ETW hedefini eklemek için aşağıdaki komutları verin. Bu, denetim noktasının ne kadar sürdüğünü belirlemek için kullanılan başlangıç ve bitiş olaylarını görmenizi sağlar.

    ALTER EVENT SESSION test0  
    ON SERVER  
    ADD TARGET package0.etw_classic_sync_target  
    go  
    
  4. Oturumu başlatmak ve olay toplamaya başlamak için aşağıdaki ifadeleri çalıştırın.

    ALTER EVENT SESSION test0  
    ON SERVER  
    STATE = start  
    go  
    
  5. Üç olayın tetiklenmesine neden olmak için aşağıdaki ifadeleri yayımlayın.

    USE tempdb  
          checkpoint  
    go  
    USE master  
          checkpoint  
          checkpoint  
    go  
    
  6. Olay sayılarını kontrol etmek için aşağıdaki komutları çalıştırın.

    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. Komut isteminde ETW verilerini görüntülemek için aşağıdaki komutları çalıştırın.

    Uyarı

    tracerpt komutuyla ilgili yardım almak için komut istemine yazıntracerpt /?.

    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. Olay oturumunu durdurmak ve sunucudan kaldırmak için aşağıdaki deyimleri yayımlayın.

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

Ayrıca Bkz.

CREATE EVENT SESSION (Transact-SQL)
ALTER EVENT SESSION (Transact-SQL)
ETKİNLİK OTURUMUNU SİL (Transact-SQL)
Genişletilmiş Olaylar Kataloğu Görünümleri (Transact-SQL)
Genişletilmiş Olaylar Dinamik Yönetim Görünümleri
SQL Server Genişletilmiş Olay Hedefleri