Bagikan melalui


Membuat Jejak (Transact-SQL)

Topik ini menjelaskan cara menggunakan prosedur tersimpan untuk membuat jejak.

Untuk membuat jejak

  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) ditik 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 dalam 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).

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

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  
  

Contoh

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

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

Contoh

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  
  

Contoh

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

Lihat juga

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