Membuat Jejak (Transact-SQL)

Berlaku untuk:SQL Server

Topik ini menjelaskan cara menggunakan prosedur tersimpan untuk membuat jejak.

Untuk membuat pelacakan

  1. Jalankan sp_trace_create dengan parameter yang diperlukan untuk membuat jejak baru. Jejak baru akan berada dalam status berhenti (status adalah 0).

  2. Jalankan sp_trace_setevent dengan parameter yang diperlukan untuk memilih peristiwa dan kolom yang akan dilacak.

  3. Secara opsional, jalankan sp_trace_setfilter untuk mengatur salah satu atau kombinasi filter.

    sp_trace_setevent dan sp_trace_setfilter hanya dapat dijalankan pada jejak yang ada yang dihentikan.

    Penting

    Tidak seperti prosedur tersimpan reguler, parameter semua prosedur tersimpan SQL Server Profiler (sp_trace_xx) diketik secara ketat dan tidak mendukung konversi jenis data otomatis. Jika parameter ini tidak dipanggil dengan jenis data parameter input yang benar, seperti yang ditentukan dalam deskripsi argumen, prosedur tersimpan mengembalikan kesalahan.

Contoh

Kode berikut menunjukkan pembuatan jejak menggunakan Transact-SQL. Ini ada di tiga bagian: membuat jejak, mengisi file jejak, dan menghentikan jejak. Sesuaikan jejak dengan menambahkan peristiwa yang ingin Anda lacak. Untuk daftar peristiwa dan kolom, lihat sp_trace_setevent (Transact-SQL).

J. Membuat jejak

Kode berikut membuat jejak, menambahkan peristiwa ke pelacakan, lalu memulai jejak:

DECLARE @RC int, @TraceID int, @on BIT  
EXEC @rc = sp_trace_create @TraceID output, 0, N'C:\SampleTrace'  
  
-- Select the return code to see if the trace creation was successful.  
SELECT RC = @RC, TraceID = @TraceID  
  
-- Set the events and data columns you need to capture.  
SELECT @on = 1  
  
-- 10 is RPC:Completed event. 1 is TextData column.   
EXEC sp_trace_setevent @TraceID, 10, 1, @on   
-- 13 is SQL:BatchStarting, 11 is LoginName  
EXEC sp_trace_setevent @TraceID, 13, 11, @on   
-- 13 is SQL:BatchStarting, 14 is StartTime  
EXEC sp_trace_setevent @TraceID, 13, 14, @on   
-- 12 is SQL:BatchCompleted, 15 is EndTime  
EXEC sp_trace_setevent @TraceID, 12, 15, @on   
-- 13 is SQL:BatchStarting, 1 is TextData  
EXEC sp_trace_setevent @TraceID, 13, 1, @on   
  
-- Set any filter. Not provided in this example  
--EXEC sp_trace_setfilter 1, 10, 0, 6, N'%Profiler%'  
  
-- Start Trace (status 1 = start)  
EXEC @RC = sp_trace_setstatus @TraceID, 1  
GO  
  

B. Mengisi file pelacakan

Sekarang setelah jejak telah dibuat dan dimulai, jalankan kode berikut untuk mengisi jejak dengan aktivitas.

SELECT * FROM master.sys.databases  
GO  
SELECT * FROM ::fn_trace_getinfo(default)  
GO  
  

C. Hentikan pelacakan

Jejak dapat dihentikan dan dimulai ulang kapan saja. Dalam contoh ini, jalankan kode berikut untuk menghentikan jejak, menutup jejak, dan menghapus definisi pelacakan.

DECLARE @TraceID int  
-- Populate a variable with the trace_id of the current trace  
SELECT  @TraceID = TraceID FROM ::fn_trace_getinfo(default) WHERE VALUE = N'C:\SampleTrace.trc'  
  
-- First stop the trace.   
EXEC sp_trace_setstatus @TraceID, 0  
  
-- Close and then delete its definition from SQL Server.   
EXEC sp_trace_setstatus @TraceID, 2  
  

D. Memeriksa file pelacakan

Untuk memeriksa file pelacakan, buka file SampleTrace.trc menggunakan SQL Server Profiler.

Lihat Juga

Prosedur Tersimpan SQL Server Profiler (Transact-SQL)
sp_trace_create (T-SQL)
sp_trace_setevent (T-SQL)
sp_trace_setfilter (T-SQL)