Membuat Jejak (Transact-SQL)
Topik ini menjelaskan cara menggunakan prosedur tersimpan untuk membuat jejak.
Untuk membuat jejak
Jalankan sp_trace_create dengan parameter yang diperlukan untuk membuat jejak baru. Jejak baru akan berada dalam status berhenti (status adalah 0).
Jalankan sp_trace_setevent dengan parameter yang diperlukan untuk memilih peristiwa dan kolom yang akan dilacak.
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)