Memantau Aktivitas Sistem Menggunakan Kejadian yang Diperluas
Berlaku untuk: SQL Server
Azure 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
Dalam 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
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
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
Terbitkan pernyataan berikut untuk memulai sesi dan memulai pengumpulan peristiwa.
ALTER EVENT SESSION test0 ON SERVER STATE = start go
Terbitkan pernyataan berikut untuk menyebabkan tiga peristiwa diaktifkan.
USE tempdb checkpoint go USE master checkpoint checkpoint go
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
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.
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