Melihat Acara yang Diperluas Setara dengan Kelas Peristiwa Pelacakan SQL

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Jika Anda ingin menggunakan Extended Events untuk mengumpulkan data peristiwa yang setara dengan kelas dan kolom peristiwa SQL Trace, berguna untuk memahami bagaimana peristiwa SQL Trace dipetakan ke peristiwa dan tindakan Extended Events.

Anda dapat menggunakan prosedur berikut untuk melihat peristiwa dan tindakan Extended Events yang setara dengan setiap peristiwa SQL Trace dan kolom terkait.

Untuk menampilkan Peristiwa yang Diperluas yang setara dengan peristiwa Pelacakan SQL menggunakan Editor Kueri

  • Dari Editor Kueri di SQL Server Management Studio, jalankan kueri berikut:

    USE MASTER;
    GO
    SELECT DISTINCT
        tb.trace_event_id,
        te.name            AS 'Event Class',
        em.package_name    AS 'Package',
        em.xe_event_name   AS 'XEvent Name',
        tb.trace_column_id,
        tc.name            AS 'SQL Trace Column',
        am.xe_action_name  AS 'Extended Events action'
    FROM
                  sys.trace_events         te
        LEFT JOIN sys.trace_xe_event_map   em ON te.trace_event_id  = em.trace_event_id
        LEFT JOIN sys.trace_event_bindings tb ON em.trace_event_id  = tb.trace_event_id
        LEFT JOIN sys.trace_columns        tc ON tb.trace_column_id = tc.trace_column_id
        LEFT JOIN sys.trace_xe_action_map  am ON tc.trace_column_id = am.trace_column_id
    ORDER BY te.name, tc.name
    

Saat Anda melihat hasilnya, perhatikan hal berikut:

  • Jika semua kolom mengembalikan NULL kecuali untuk kolom Kelas Peristiwa, ini menunjukkan bahwa kelas peristiwa tidak dimigrasikan dari SQL Trace.

  • Jika hanya nilai di kolom tindakan Peristiwa yang Diperluas adalah NULL, ini menunjukkan bahwa salah satu kondisi berikut ini benar:

    • Kolom Jejak SQL memetakan ke salah satu bidang data yang terkait dengan peristiwa Kejadian yang Diperluas.

      Catatan

      Setiap peristiwa Kejadian yang Diperluas memiliki sekumpulan bidang data default yang secara otomatis disertakan dalam tataan hasil.

    • Kolom tindakan tidak memiliki Peristiwa Diperluas yang bermakna yang setara. Contohnya adalah kolom EventClass di SQL Trace. Kolom ini tidak diperlukan dalam Acara yang Diperluas karena nama peristiwa melayani tujuan yang sama.

  • Untuk kelas peristiwa SQL Trace yang dapat dikonfigurasi pengguna (UserConfigurable:1 melalui UserConfigurable:9), Extended Events menggunakan satu peristiwa untuk menggantinya. Peristiwa ini diberi nama user_event. Kejadian ini dinaikkan dengan menggunakan sp_trace_generateevent, yang merupakan prosedur tersimpan yang sama yang digunakan oleh SQL Trace. Peristiwa user_event dikembalikan terlepas dari ID peristiwa mana yang diteruskan ke prosedur tersimpan. Namun, bidang event_id dikembalikan sebagai bagian dari data peristiwa. Ini memungkinkan Anda untuk membangun predikat yang didasarkan pada ID peristiwa. Misalnya, jika Anda menggunakan UserConfigurable:0 (ID peristiwa = 82) dalam kode, Anda dapat menambahkan peristiwa user_event ke sesi, dan menentukan predikat 'event_id = 82'. Oleh karena itu, Anda tidak perlu mengubah kode karena prosedur tersimpan sp_trace_generateevent menghasilkan peristiwa user_event Peristiwa yang Diperluas, dan kelas peristiwa SQL Trace yang setara.

Lihat Juga

sp_trace_generateevent (T-SQL)