이 전글에서 추적(Trace)을 시작하는 Stored Procedure을 만들어 보았습니다. 다시 한번 말하지만, 해당 Stored Procedure는 "SQL Server 2005 초보 DBA를 위한 SQL Server 2005 관리 가이드" 라는 책에 수록되어 있는 Stored Procedure라는 점을 말씀드리면서 이 번글에서는 시작한 추적(Trace)을 중지 시키는 Stored Procedure을 설명 해보도록 하겠습니다.
저번글에서 설명은 하지 않았지만, 추적(Trace)을 시작한 후에 해당 추적 정보를 Temp Database의 TraceQueueList라는 Table을 만들어서 저장을 시켰다. 그 이유는 해당 추적(Trace)을 지우기 위해서 이다.
먼저, 추적(Trace)을 중지시키는 Stored Procedure을 보자.
-- =============================================
-- Author : 이승연
-- Create date : 2009-06-16
-- Description :
-- =============================================
CREATE PROCEDURE [dbo].[usp_trace_stop]
@TraceName sysname = 'trace'
AS
BEGIN
SET NOCOUNT ON;
-- 변수선언
DECLARE @TraceID int
DECLARE @TraceFileName sysname
-- 추적목록을확인하여, 추적을중지한다.
IF object_id('tempdb..TraceQueueList') IS NOT NULL BEGIN
SELECT @TraceID = TraceID, @TraceFileName = TraceFile FROM tempdb..TraceQueueList
WHERE TraceName = @TraceName
IF @@rowcount <> 0 BEGIN
EXEC sp_trace_setstatus @TraceID, 0
EXEC sp_trace_setstatus @TraceID, 2
DELETE tempdb..TraceQueueList WHERE TraceName = @TraceName
PRINT 'Trace is stopped.' + ' The trace output file name is ' + @TraceFileName
END
END ELSE BEGIN
PRINT 'No active traces.'
END
END
이와 같이, 'tempdb..TraceQueueList'라는 Table에서 활성화되어 있는 TraceID가 있다면 sp_trace_setstatus 을 이용하여 중지을 시켜주면 된다. sp_trace_setstatus 는 이 전글에서 충분히 설명하였다.
Transact-SQL 로 만들어 본 추적(Trace) 관리 저장 프로시저 - (3)에서는 이 저장되어진 추적(Trace)을 가지고 어떻게 활용을 하는지 알아보도록 하겠다.
'MSSQL > Performance' 카테고리의 다른 글
System Tables and Catalog Views (1) | 2009.10.08 |
---|---|
운영체제 Disk 사용량 보기 (0) | 2009.09.04 |
MS-SQL File 사용량 보기 (2) | 2009.09.04 |
Transact-SQL 로 만들어 본 추적(Trace) 관리 저장 프로시저 - (1) (0) | 2009.07.09 |
인덱스 재작성 에러 Server: Msg 3628, Level 16, State 1, Line 1 (1) | 2009.06.11 |