2007~2011/SQL Server2009.06.25 00:01
SQL Server 2005 에서 특정 쿼리를 추적하기 위해 Profiler 를 사용하는 방법에 대해서 아래와 같이 정리하였습니다. 다만 Profiler 사용에 따른 CPU 리소스 부하에 대해서 고민을 해야 합니다. 이외에도 Profiler 를 사용해야 하는 주요 시나리오에 대해서는 아래 링크된 참고자료 msdn 문서를 참조하면 좋겠습니다.


[시나리오]
LAIGO 데이터베이스에서 DELETE 쿼리를 누가? 언제? 사용하였는지 Profiler 를 사용하여 PROFILER 데이터베이스에 delTbl 이라는 테이블에 데이터를 기록합니다. 


1. 데이터베이스 생성
  가. CREATE DATABASE LAIGO 
        -- Accounts 라는 테이블을 만들고 테스트를 위한 데이터를 삽입합니다. 
  나. CREATE DATABASE PROFILER 


2. SQL Server Profiler 설정
  가. SQL Server Profiler - 새 추적 
  나. 일반 설정 
    1) 추적 이름 : DELETE QUERY 추적
    2) 템플릿 : TSQL
    3) 테이블에 저장
    4) Profiler 데이터베이스 - delTbl 테이블 생성 



  다. 이벤트 선택
    1) SQL:BatchCompleted 모든 열 표시 : TextData, SPID, StartTime, LoginName, NTUserName, ApplicationName



  라. 열 필터 
    1) DATABASE ID : 5 -- LAIGO DB 
    2) TextData : 유사 : %DELETE% 


  마. 실행



[실행결과]
SSMS에서 LAIGO 데이터베이스의 Accounts 테이블의 일부 데이터를 DELETE 명령으로 삭제할 경우 아래와 같이 SQL Server Profiler 의 DELETE QUERY 에 기록됩니다.

 
또한 PROFIER 데이터베이스에 delTbl 을 조회해도 DELETE 명령을 수행한 기록을 찾아볼 수 있습니다. 

USE PROFILER 
GO
SELECT TextData, StartTime,LoginName FROM delTbl
GO



[참고자료]
SQL Server 2000 Profiler를 사용하여 특정 테이블 추적
http://laigo.kr/147

Scenarios for Using SQL Server Profiler


작성자 : Lai Go / 작성일자 : 2009.06.22

Posted by Lai Go