sp_trace_create(Transact-SQL)
적용 대상: SQL Server
추적 정의를 만듭니다. 새 추적이 중지된 상태입니다.
Important
SQL Server의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 애플리케이션은 수정하세요. 대신 확장 이벤트를 사용합니다.
구문
sp_trace_create
[ @traceid = ] traceid OUTPUT
, [ @options = ] options
, [ @tracefile = ] N'tracefile'
[ , [ @maxfilesize = ] maxfilesize ]
[ , [ @stoptime = ] 'stoptime' ]
[ , [ @filecount = ] filecount ]
[ ; ]
인수
[ @traceid = ] traceid OUTPUT
SQL Server에서 새 추적에 할당한 번호입니다. 사용자가 제공한 입력은 무시됩니다. @traceid int 형식의 OUTPUT 매개 변수이며 기본값은 .입니다NULL
. 사용자는 @traceid 값을 사용하여 이 저장 프로시저에 정의된 추적을 식별, 수정 및 제어합니다.
[ @options = ] 옵션
추적에 대한 옵션 집합을 지정합니다. @options 기본값이 없는 int입니다. 선택한 옵션의 합계 값을 지정하여 이러한 옵션의 조합을 선택할 수 있습니다. 예를 들어 옵션을 TRACE_FILE_ROLLOVER
SHUTDOWN_ON_ERROR
모두 켜려면 @options 지정 6
합니다.
다음 표에서는 옵션, 설명 및 해당 값을 나열합니다.
옵션 이름 | 옵션 값 | 설명 |
---|---|---|
TRACE_FILE_ROLLOVER |
2 |
@filecount 도달하면 현재 추적 파일이 닫히고 새 파일이 생성되도록 지정합니다. 모든 새 레코드는 새 파일에 기록됩니다. 새 파일의 이름은 이전 파일과 같지만 시퀀스를 나타내기 위해 정수가 추가됩니다. 예를 들어 원래 추적 파일의 이름이 지정 filename.trc 되면 다음 추적 파일의 이름이 지정 filename_1.trc 되고 다음 추적 파일은 filename_2.trc 다음과 같습니다.롤오버 추적 파일이 더 많이 만들어질수록 파일 이름에 추가된 정수 값이 순차적으로 증가합니다. 이 옵션이 @filecount 값을 지정하지 않고 지정된 경우 SQL Server는 @filecount(5MB)의 기본값을 사용합니다. |
SHUTDOWN_ON_ERROR |
4 |
어떤 이유로든 추적을 파일에 쓸 수 없으면 SQL Server가 종료되도록 지정합니다. 이 옵션은 보안 감사 추적을 수행할 때 유용합니다. |
TRACE_PRODUCE_BLACKBOX |
8 |
서버에서 생성한 추적 정보의 마지막 5MB 레코드가 서버에 의해 저장되도록 지정합니다. TRACE_PRODUCE_BLACKBOX 는 다른 모든 옵션과 호환되지 않습니다. |
[ @tracefile = ] N'tracefile'
추적이 기록되는 위치 및 파일 이름을 지정합니다. @tracefile 기본값이 없는 nvarchar(245)입니다. @tracefile 로컬 디렉터리(예: N'C:\MSSQL\Trace\trace.trc'
)이거나 공유 또는 경로(예: N'\\<servername>\<sharename>\<directory>\trace.trc'
)에 대한 UNC일 수 있습니다.
SQL Server는 모든 추적 파일 이름에 확장명을 추가합니다 .trc
. TRACE_FILE_ROLLOVER
옵션 및 @filecount 지정된 경우 SQL Server는 원래 추적 파일이 최대 크기로 증가할 때 새 추적 파일을 만듭니다. 새 파일의 이름은 원래 파일과 같지만 _n은 시퀀스를 나타내기 위해 추가됩니다.1
예를 들어 첫 번째 추적 파일의 이름이 지정 filename.trc
되면 두 번째 추적 파일의 이름이 지정 filename_1.trc
됩니다.
이 TRACE_FILE_ROLLOVER
옵션을 사용하는 경우 원래 추적 파일 이름에 밑줄 문자를 사용하지 않는 것이 좋습니다. 밑줄을 사용하는 경우 다음 동작이 발생합니다.
SQL Server Profiler는 롤오버 파일을 자동으로 로드하거나 로드하라는 메시지를 표시하지 않습니다(이러한 파일 롤오버 옵션 중 하나가 구성된 경우).
sys.fn_trace_gettable 함수는 원래 파일 이름이 밑줄과 숫자 값으로 끝나는 롤오버 파일(@number_files 인수를 사용하여 지정한 경우)을 로드하지 않습니다. (파일이 롤오버될 때 자동으로 추가되는 밑줄과 숫자에는 적용되지 않습니다.)
참고 항목
이러한 두 동작에 대한 해결 방법으로 파일 이름을 변경하여 원래 파일 이름에서 밑줄을 제거할 수 있습니다. 예를 들어 원래 파일의 이름이 지정 my_trace.trc
되고 롤오버 파일의 이름이 지정된 my_trace_1.trc
경우 SQL Server Profiler에서 파일을 열기 전에 파일 mytrace.trc
mytrace_1.trc
이름을 바꿀 수 있습니다.
옵션을 사용할 때 TRACE_PRODUCE_BLACKBOX
는 @tracefile 지정할 수 없습니다.
[ @maxfilesize = ] maxfilesize
추적 파일이 증가할 수 있는 최대 크기(MB)를 지정합니다. @maxfilesize 기본값5
인 bigint입니다.
이 매개 변수를 옵션 없이 TRACE_FILE_ROLLOVER
지정하면 사용된 디스크 공간이 @maxfilesize 지정한 양을 초과하면 추적이 파일에 기록되지 않습니다.
[ @stoptime = ] 'stoptime'
추적을 중지할 날짜 및 시간을 지정합니다. @stoptime datetime이며 기본값은 .입니다NULL
. 이 경우 NULL
추적은 수동으로 중지되거나 서버가 종료될 때까지 실행됩니다.
@stoptime 및 @maxfilesize 모두 지정되고 TRACE_FILE_ROLLOVER
지정되지 않은 경우 지정된 중지 시간 또는 최대 파일 크기에 도달하면 추적이 맨 위로 표시됩니다. @stoptime @maxfilesize TRACE_FILE_ROLLOVER
지정된 경우 추적이 드라이브를 채우지 않는다고 가정하고 지정된 중지 시간에 추적이 중지됩니다.
[ @filecount = ] 'filecount'
동일한 기본 파일 이름으로 유지 관리할 최대 수 또는 추적 파일을 지정합니다. @filecount int, 보다 큽 1
수 있습니다. 이 매개 변수는 옵션이 지정된 경우에만 TRACE_FILE_ROLLOVER
유효합니다. @filecount 지정하면 SQL Server는 새 추적 파일을 열기 전에 가장 오래된 추적 파일을 삭제하여 @filecount 추적 파일을 유지 관리하지 않습니다. SQL Server는 기본 파일 이름에 숫자를 추가하여 추적 파일의 사용 기간을 추적합니다.
예를 들어 @tracefile 매개 변수를 지정 C:\mytrace
하는 경우 이름이 있는 파일은 이름이 C:\mytrace_123.trc
C:\mytrace_124.trc
있는 파일보다 오래된 파일입니다. @filecount 설정된 경우 추적 파일을 만들기 전에 SQL Server에서 파일을 C:\mytrace_125.trc
C:\mytrace_123.trc
삭제2
합니다.
SQL Server는 각 파일을 한 번만 삭제하려고 시도하고 다른 프로세스에서 사용 중인 파일을 삭제할 수 없습니다. 따라서 추적이 실행되는 동안 다른 애플리케이션이 추적 파일을 사용하는 경우 SQL Server는 이러한 추적 파일을 파일 시스템에 남겨 둘 수 있습니다.
반환 코드 값
다음 표에서는 저장 프로시저가 완료된 후 얻을 수 있는 코드 값에 대해 설명합니다.
반환 코드 | 설명 |
---|---|
0 |
오류가 없습니다. |
1 |
알 수 없는 오류입니다. |
10 |
잘못된 옵션입니다. 지정한 옵션이 호환되지 않으면 반환됩니다. |
12 |
파일이 만들어지지 않았습니다. |
13 |
메모리가 부족합니다. 메모리가 부족하여 지정된 작업을 수행할 수 없을 때 반환됩니다. |
14 |
중지 시간이 잘못되었습니다. 지정된 중지 시간이 이미 발생한 경우 반환됩니다. |
15 |
잘못된 매개 변수입니다. 사용자가 호환되지 않는 매개 변수를 제공하면 반환됩니다. |
설명
sp_trace_create
는 이전 버전의 SQL Server에서 사용할 수 있는 확장 저장 프로시저에서 xp_trace_*
이전에 실행한 많은 작업을 수행하는 SQL Server 저장 프로시저입니다. 다음 대신 사용합니다 sp_trace_create
.
xp_trace_addnewqueue
xp_trace_setqueuecreateinfo
xp_trace_setqueuedestination
sp_trace_create
추적 정의만 만듭니다. 이 저장 프로시저는 추적을 시작하거나 변경하는 데 사용할 수 없습니다.
모든 SQL 추적 저장 프로시저(sp_trace_*
)의 매개 변수는 엄격하게 입력됩니다. 인수 설명에 지정된 대로 올바른 입력 매개 변수 데이터 형식으로 이러한 매개 변수를 호출하지 않으면 저장 프로시저에서 오류를 반환합니다.
의 경우 sp_trace_create
SQL Server 서비스 계정에 추적 파일 폴더에 대한 쓰기 권한이 있어야 합니다. SQL Server 서비스 계정이 추적 파일이 있는 컴퓨터의 관리자가 아닌 경우 SQL Server 서비스 계정에 쓰기 권한을 명시적으로 부여해야 합니다.
참고 항목
시스템 함수를 사용하여 생성된 sp_trace_create
추적 파일을 테이블에 자동으로 로드할 fn_trace_gettable
수 있습니다. 자세한 내용은 sys.fn_trace_gettable 참조하세요.
추적 저장 프로시저를 사용하는 예제는 추적 만들기를 참조하세요.
TRACE_PRODUCE_BLACKBOX
에는 다음과 같은 특징이 있습니다.
롤오버 추적입니다. 기본 @filecount 2이지만 @filecount 옵션을 사용하여 사용자가 재정의할 수 있습니다.
다른 추적과 마찬가지로 기본 @maxfilesize 5MB이며 변경할 수 있습니다.
파일 이름을 지정할 수 없습니다. 파일은 다음과
N'%SQLDIR%\MSSQL\DATA\blackbox.trc'
같이 저장됩니다.추적에는 다음 이벤트 및 해당 열만 포함됩니다.
- RPC 시작
- 일괄 처리 시작
- 예외
- 주의
이 추적에서 이벤트 또는 열을 추가하거나 제거할 수 없습니다.
이 추적에 대해 필터를 지정할 수 없습니다.
사용 권한
ALTER TRACE 권한이 필요합니다.