추적 만들기(Transact-SQL)Create a Trace (Transact-SQL)

이 항목에서는 저장 프로시저를 사용하여 추적을 만드는 방법에 대해 설명합니다.This topic describes how to use stored procedures to create a trace.

추적 만들기To create a trace

  1. 새 추적을 만드는 데 필요한 매개 변수를 사용하여 sp_trace_create 를 실행합니다.Execute sp_trace_create with the required parameters to create a new trace. 새 추적은 중지된 상태(status = 0)입니다.The new trace will be in a stopped state (status is 0).

  2. 추적할 이벤트 및 열을 선택하는 데 필요한 매개 변수를 실행하여 sp_trace_setevent 를 실행합니다.Execute sp_trace_setevent with the required parameters to select the events and columns to trace.

  3. 또는 sp_trace_setfilter 를 실행하여 필터 또는 필터 조합을 설정합니다.Optionally, execute sp_trace_setfilter to set any or a combination of filters.

    sp_trace_seteventsp_trace_setfilter 는 중지된 기존 추적에서만 실행할 수 있습니다.sp_trace_setevent and sp_trace_setfilter can be executed only on existing traces that are stopped.

    중요

    일반적인 저장 프로시저와 달리 모든 SQL Server Profiler 저장 프로시저의 매개 변수(sp_trace_*xx)는 정확하게 입력해야 하며 데이터 형식 자동 변환을 지원하지 않습니다.Unlike regular stored procedures, parameters of all SQL Server Profiler stored procedures (sp_trace_xx***) are strictly typed and do not support automatic data type conversion. 이러한 매개 변수를 인수 설명에 지정된 올바른 입력 매개 변수 데이터 형식으로 호출하지 않으면 저장 프로시저가 오류를 반환합니다.If these parameters are not called with the correct input parameter data types, as specified in the argument description, the stored procedure returns an error.

예제Example

다음 코드에서는 Transact-SQLTransact-SQL을 사용하여 추적을 만드는 방법을 보여 줍니다.The following code demonstrates creating a trace using Transact-SQLTransact-SQL. 이 코드는 추적 만들기, 추적 파일 채우기 및 추적 중지의 세 가지 섹션으로 구성되어 있습니다.It is in three sections: creating the trace, populating the trace file, and stopping the trace. 추적하려는 이벤트를 추가하여 추적을 사용자 지정합니다.Customize the trace by adding the events that you want to trace. 이벤트 및 열 목록에 대한 자세한 내용은 sp_trace_setevent(Transact-SQL)을 사용하여 추적을 만드는 방법을 보여 줍니다.For the list of events and columns, see sp_trace_setevent (Transact-SQL).

다음 코드에서는 추적을 만들고 추적에 이벤트를 추가한 다음 추적을 시작합니다.The following code creates a trace, adds events to the trace, and then starts the trace:

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  

예제Example

추적을 만들어 시작했으므로 이제 다음 코드를 실행하여 작업으로 추적을 채웁니다.Now that the trace has been created and started, execute the following code to populate the trace with activity.

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

예제Example

추적은 언제든지 중지 및 다시 시작할 수 있습니다.The trace can be stopped and restarted at any time. 이 예에서는 다음 코드를 실행하여 추적을 중지하고 추적을 닫고 추적 정의를 삭제합니다.In this example, execute the following code to stop the trace, close the trace, and delete the trace definition.

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  

예제Example

추적 파일을 검사하려면 SQL Server 프로파일러SQL Server Profiler를 사용하여 SampleTrace.trc 파일을 엽니다.To examine the trace file, open the SampleTrace.trc file using SQL Server 프로파일러SQL Server Profiler.

참고 항목See Also

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