Melihat Acara yang Diperluas Setara dengan Kelas Peristiwa Pelacakan SQL
Berlaku untuk: SQL ServerAzure SQL Database Azure 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 melihat Peristiwa yang Diperluas yang setara dengan peristiwa SQL Trace 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.