Aracılığıyla paylaş


Nasıl yapılır: Bir izleme (Transact-SQL) oluştur

Bu konuda saklı yordamlar bir izleme oluşturmak için nasıl kullanılacağını açıklar.

Bir izleme oluşturmak için

  1. Yürütme sp_trace_create ile yeni bir izleme oluşturmak için gereken parametreler.Yeni izleme durdurulmuş durumda olacaktır (status olan 0).

  2. Yürütme sp_trace_setevent olayları izlemek için sütunları seçin ve gerekli parametreleri ile.

  3. İsteğe bağlı olarak, yürütmek sp_trace_kümefiltre için küme herhangi bir veya ikisinin bir birleşimi olması filtreleri.

    sp_trace_setevent ve sp_trace_setfilter durdurulan yalnızca varolan izlemeler üzerinde çalıştırılabilir.

    Önemli notÖnemli

    Normal saklı yordamlar, tüm sql Server Profiler'da Parametreler saklı yordamlar (sp_trace_xx) kesinlikle yazılan ve otomatik veri türü dönüştürme destekler.Bu parametreler bağımsız açıklamasında belirtildiği gibi doğru giriş parametresi veri türleriyle adlandırılırlar değil, saklı yordam bir hata döndürür.

Örnek

Aşağıdaki kodu kullanarak bir izleme oluşturma gösterilmiştir Transact-SQL.Bu üç bölümde verilmiştir: İzleme oluşturma, izleme dosyası doldurma ve izleme durdurma.İzleme, izlemek istediğiniz olay ekleyerek özelleştirin.Olaylar ve sütunlar listesi için bkz: sp_trace_setevent (Transact-sql).

Aşağıdaki kod bir izleme oluşturur, olaylar için izleme ekler ve sonra izleme başlatır:

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

İzleme oluşturduktan ve başladı, yürütmek izleme aktiviteyle doldurmak için aşağıdaki kodu.

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

İzleme durdurulur ve istediğiniz saat yeniden.Bu örnekte, yürütmek , izlemeyi durdurmak için aşağıdaki kod izlemeyi kapatın ve izleme tanımını silin.

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

İncelemek için izleme dosyası, SampleTrace.trc dosyasını kullanarak açın SQL Server Profiler.