다음을 통해 공유


추적 만들기(Transact-SQL)

적용 대상: SQL Server

이 항목에서는 저장 프로시저를 사용하여 추적을 만드는 방법에 대해 설명합니다.

추적을 만들려면

  1. 새 추적을 만드는 데 필요한 매개 변수를 사용하여 sp_trace_create를 실행합니다. 새 추적은 중지된 상태(상태0)입니다.

  2. 추적할 이벤트 및 열을 선택하는 데 필요한 매개 변수를 사용하여 sp_trace_setevent를 실행합니다.

  3. 또는 sp_trace_setfilter 를 실행하여 필터 또는 필터 조합을 설정합니다.

    sp_trace_seteventsp_trace_setfilter는 중지된 기존 추적에서만 실행할 수 있습니다.

    Important

    일반적인 저장 프로시저와 달리 모든 SQL Server Profiler 저장 프로시저의 매개 변수(sp_trace_xx)는 정확하게 입력되어야 하며 데이터 형식 자동 변환을 지원하지 않습니다. 인수 설명에 지정된 대로 올바른 입력 매개 변수 데이터 형식으로 이러한 매개 변수를 호출하지 않으면 저장 프로시저에서 오류를 반환합니다.

예제

다음 코드에서는 Transact-SQL을 사용하여 추적을 만드는 방법을 보여 줍니다. 추적 만들기, 추적 파일 채우기, 추적 중지의 세 가지 섹션에 있습니다. 추적하려는 이벤트를 추가하여 추적을 사용자 지정합니다. 이벤트 및 열 목록에 대한 자세한 내용은 sp_trace_setevent(Transact-SQL)을 참조하십시오.

A. 추적 만들기

다음 코드는 추적을 만들고 추적에 이벤트를 추가한 다음 추적을 시작합니다.

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. 추적 파일 채우기

추적이 만들어지고 시작되었으므로 다음 코드를 실행하여 추적을 활동으로 채웁니다.

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

C. 추적 중지하기

추적은 언제든지 중지하고 다시 시작할 수 있습니다. 이 예에서는 다음 코드를 실행하여 추적을 중지하고 추적을 닫고 추적 정의를 삭제합니다.

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. 추적 파일 검사하기

추적 파일을 검사하려면 SQL Server Profiler를 사용하여 SampleTrace.trc 파일을 엽니다.

참고 항목

SQL Server Profiler 저장 프로시저(Transact-SQL)
sp_trace_create(Transact-SQL)
sp_trace_setevent(Transact-SQL)
sp_trace_setfilter(Transact-SQL)