Aracılığıyla paylaş


İzleme Oluşturma (Transact-SQL)

Şunlar için geçerlidir: SQL Server

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

İz oluşturmak için

  1. Yeni bir izleme oluşturmak için gerekli parametrelerle sp_trace_create yürütebilirsiniz. Yeni izleme durdurulmuş durumda olur (durum0'dır).

  2. İzlemek istediğiniz olayları ve sütunları seçmek için gerekli parametrelerle sp_trace_setevent yürütebilirsiniz.

  3. İsteğe bağlı olarak, filtrelerin herhangi birini veya bir bileşimini ayarlamak için sp_trace_setfilter yürütün.

    sp_trace_setevent ve sp_trace_setfilter yalnızca durdurulan mevcut izlemelerde yürütülebilir.

    Önemli

    Normal saklı yordamlardan farklı olarak, tüm SQL Server Profiler saklı yordamlarının (sp_trace_xx) parametreleri kesinlikle yazılır ve otomatik veri türü dönüştürmeyi desteklemez. Bu parametreler, bağımsız değişken açıklamasında belirtildiği gibi doğru giriş parametresi veri türleriyle çağrılmazsa saklı yordam bir hata döndürür.

Örnekler

Aşağıdaki kod, Transact-SQL kullanarak izleme oluşturmayı gösterir. Üç bölümde yer alır: izleme oluşturma, izleme dosyasını doldurma ve izlemeyi durdurma. İzlemek istediğiniz olayları ekleyerek izlemeyi özelleştirin. Olay ve sütun listesi için bkz. sp_trace_setevent (Transact-SQL).

A. Bir iz oluştur

Aşağıdaki kod bir izleme oluşturur, izlemesine olayları ekler ve ardından izlemeyi 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  
  

B. İzleme dosyasını doldurma

İzleme oluşturulduğuna ve başlatıldığına göre, izlemeyi etkinlikle doldurmak için aşağıdaki kodu yürütür.

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

C. İzlemeyi durdurma

İzleme istediğiniz zaman durdurulabilir ve yeniden başlatılabilir. Bu örnekte, izlemeyi durdurmak, izlemeyi kapatmak ve izleme tanımını silmek için aşağıdaki kodu yürütebilirsiniz.

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. İzleme dosyasını inceleme

İzleme dosyasını incelemek için SQL Server Profiler kullanarak SampleTrace.trc dosyasını açın.

Ayrıca Bkz.

SQL Server Profiler Saklı Yordamları (Transact-SQL)
sp_trace_create (Transact-SQL)
sp_trace_setevent (Transact-SQL)
sp_trace_setfilter (Transact-SQL)