아래의 쿼리문은 Read80Trace라는 프로그램을 사용하기 위한
추적 이벤트 설정 부분입니다.
제가 자주 사용하는 부분만 설정을 해 두었습니다.
이벤트를 마구 추가한다고 해서 Read80Trace에서 인식하는 것은 아닙니다.
Read80Trace의 도움말 파일을 확인해 보시면 알겠지만
적절한 구성요소가 있어요. 그 구성요소를 정확하게 매치시켜야만
Read80Trace에서 쿼리의 분석이 가능합니다.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
/****************************************************/
/* Created by: SQL Profiler */
/****************************************************/
-- Create a Queue
declare @rc int
declare @TraceID int
declare @maxfilesize bigint
set @maxfilesize = 5
-- Please replace the text InsertFileNameHere, with an appropriate
-- filename prefixed by a path, e.g., c:\MyFolder\MyTrace. The .trc extension
-- will be appended to the filename automatically. If you are writing from
-- remote server to local drive, please use UNC path and make sure server has
-- write access to your network share
sp_trace_create [ @traceid = ] trace_id OUTPUT
[,[@options =] option_value
, [ @tracefile = ] 'trace_file'
[ , [ @maxfilesize = ] max_file_size ]
[ , [ @stoptime = ] 'stop_time' ]
여기서 옵션의 값으로 파일이 최대 용량이 되었을 때 자동으로 증가 시킬 수 있다.
옵션 값은 2번
exec @rc = sp_trace_create @TraceID output, 2, N'[저장 경로]', @maxfilesize, NULL
print @rc
if (@rc != 0) goto error
-- Client side File and Table cannot be scripted
-- Set the events
declare @on bit
set @on = 1
exec sp_trace_setevent @TraceID, 10, 1, @on
exec sp_trace_setevent @TraceID, 10, 3, @on
exec sp_trace_setevent @TraceID, 10, 13, @on
exec sp_trace_setevent @TraceID, 10, 14, @on
exec sp_trace_setevent @TraceID, 10, 15, @on
exec sp_trace_setevent @TraceID, 10, 16, @on
exec sp_trace_setevent @TraceID, 10, 17, @on
exec sp_trace_setevent @TraceID, 10, 18, @on
exec sp_trace_setevent @TraceID, 12, 1, @on
exec sp_trace_setevent @TraceID, 12, 3, @on
exec sp_trace_setevent @TraceID, 12, 13, @on
exec sp_trace_setevent @TraceID, 12, 14, @on
exec sp_trace_setevent @TraceID, 12, 15, @on
exec sp_trace_setevent @TraceID, 12, 16, @on
exec sp_trace_setevent @TraceID, 12, 17, @on
exec sp_trace_setevent @TraceID, 12, 18, @on
exec sp_trace_setevent @TraceID, 45, 1, @on
exec sp_trace_setevent @TraceID, 45, 3, @on
exec sp_trace_setevent @TraceID, 45, 13, @on
exec sp_trace_setevent @TraceID, 45, 14, @on
exec sp_trace_setevent @TraceID, 45, 15, @on
exec sp_trace_setevent @TraceID, 45, 16, @on
exec sp_trace_setevent @TraceID, 45, 17, @on
exec sp_trace_setevent @TraceID, 45, 18, @on
exec sp_trace_setevent @TraceID, 45, 22, @on
exec sp_trace_setevent @TraceID, 45, 25, @on
exec sp_trace_setevent @TraceID, 45, 29, @on
-- Set the Filters
declare @intfilter int
declare @bigintfilter bigint
-- 필요한 DB 파일만 감시하도록 설정할 때 사용합니다.
-- 이 때 DB Id로 설정해야 하는데요 DB Id를 모를 경우에는
-- sp_helpdb로 확인이 가능합니다.
--set @intfilter = 37
--exec sp_trace_setfilter @TraceID, 3, 1, 0, @intfilter
exec sp_trace_setfilter @TraceID, 10, 0, 7, N'SQL Profiler'
-- Set the trace status to start
exec sp_trace_setstatus @TraceID, 1
-- display trace id for future references
select TraceID=@TraceID
goto finish
error:
select ErrorCode=@rc
finish:
go
-- 종료할 때에는 반드시 일시 정지를 하고 닫기를 해야 합니다. (중요)
-- sp_trace_setstatus [TraceID], [Property]
-- Property -> 0 : 일시 정지, 1 : 다시 시작, 2 : 닫기
-- exec sp_trace_setstatus 1, 0
-- go
-- exec sp_trace_setstatus 1, 2
-- go
아래는 Read80Trace의 명령어 입니다.
일반적으로 아래와 같은 방법으로 사용하시면 됩니다.
Read80Trace -S[ServerIP] -d[OutputDataBaseName] -U[UserID] -P[Password] -o[rml output filepath] -I[tracefile] -r
요즘 머리가 나빠져서리... 이렇게 글을 남겨놓지 않으면 다시 겅부하는데 엄청 시간이 걸려서리...
쩝~~~
'SQLServer' 카테고리의 다른 글
Microsoft SQL Server 2000 Index Defragmentation Best Practices (0) | 2006.01.14 |
---|---|
인덱스 튜닝 계획(일간, 주간) (0) | 2006.01.11 |
Trace(추적) 관련 SQL Server 함수들 (0) | 2006.01.11 |
Job에 대한 시스템 테이블들 (0) | 2006.01.10 |
SQL Server 서비스 팩 버전과 에디션 확인 (0) | 2006.01.06 |