Memantau Aktivitas Sistem Menggunakan Kejadian yang Diperluas

Berlaku untuk:SQL ServerAzure SQL Database

Prosedur ini menggambarkan bagaimana Extended Events dapat digunakan dengan Event Tracing for Windows (ETW) untuk memantau aktivitas sistem. Prosedur ini juga menunjukkan bagaimana pernyataan CREATE EVENT SESSION, ALTER EVENT SESSION, dan DROP EVENT SESSION digunakan.

Menyelesaikan tugas-tugas ini melibatkan penggunaan Editor Kueri di SQL Server Management Studio untuk melakukan prosedur berikut. Prosedur ini juga memerlukan penggunaan prompt perintah untuk menjalankan perintah ETW.

Untuk memantau aktivitas sistem menggunakan Extended Events

  1. Di Editor Kueri, terbitkan pernyataan berikut untuk membuat sesi peristiwa dan menambahkan dua peristiwa. Peristiwa ini, checkpoint_begin dan checkpoint_end, diaktifkan di awal dan akhir titik pemeriksaan database.

    CREATE EVENT SESSION test0  
    ON SERVER  
    ADD EVENT sqlserver.checkpoint_begin,  
    ADD EVENT sqlserver.checkpoint_end  
    WITH (MAX_DISPATCH_LATENCY = 1 SECONDS)  
    go  
    
  2. Tambahkan target bucketing dengan 32 wadah untuk menghitung jumlah titik pemeriksaan berdasarkan ID database.

    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. Terbitkan pernyataan berikut untuk menambahkan target ETW. Ini akan memungkinkan Anda untuk melihat peristiwa awal dan akhir, yang digunakan untuk menentukan berapa lama waktu yang dibutuhkan titik pemeriksaan.

    ALTER EVENT SESSION test0  
    ON SERVER  
    ADD TARGET package0.etw_classic_sync_target  
    go  
    
  4. Terbitkan pernyataan berikut untuk memulai sesi dan memulai pengumpulan peristiwa.

    ALTER EVENT SESSION test0  
    ON SERVER  
    STATE = start  
    go  
    
  5. Terbitkan pernyataan berikut untuk menyebabkan tiga peristiwa diaktifkan.

    USE tempdb  
          checkpoint  
    go  
    USE master  
          checkpoint  
          checkpoint  
    go  
    
  6. Terbitkan pernyataan berikut untuk melihat jumlah peristiwa.

    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. Pada prompt perintah, terbitkan perintah berikut untuk melihat data ETW.

    Catatan

    Untuk mendapatkan bantuan untuk perintah tracerpt , pada prompt perintah, masukkan 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. Terbitkan pernyataan berikut untuk menghentikan sesi peristiwa dan menghapusnya dari server.

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

Lihat Juga

CREATE EVENT SESSION (T-SQL)
MENGUBAH SESI PERISTIWA (Transact-SQL)
HILANGKAN SESI PERISTIWA (T-SQL)
Tampilan Katalog Peristiwa yang Diperluas (Transact-SQL)
Tampilan Manajemen Dinamis Peristiwa yang Diperluas
Target Peristiwa Yang Diperluas SQL Server