이벤트 알림 및 SQL Trace 이해
다음 표에서는 서버 이벤트 모니터링을 위한 이벤트 알림과 SQL Trace를 사용할 때의 차이점을 비교합니다.
SQL Trace | 이벤트 알림 |
---|---|
SQL Trace는 트랜잭션과 관련된 성능 오버헤드를 생성하지 않습니다. 데이터 패키징이 효율적입니다. |
XML 형식 이벤트 데이터 작성 및 이벤트 알림 전송과 관련된 성능 오버헤드가 있습니다. |
SQL Trace는 모든 추적 이벤트 클래스를 모니터링할 수 있습니다. |
이벤트 알림은 추적 이벤트 클래스의 하위 집합과 모든 DDL(데이터 정의 언어) 이벤트를 모니터링할 수 있습니다. |
추적 이벤트를 생성할 데이터 열을 사용자 지정할 수 있습니다. |
이벤트 알림에서 반환되는 XML 형식 이벤트 데이터의 스키마가 고정되어 있습니다. |
DDL로 생성되는 추적 이벤트는 DDL 문이 롤백되는지 여부와 관계없이 항상 생성됩니다. |
해당 DDL 문의 이벤트가 롤백되면 이벤트 알림이 실행되지 않습니다. |
추적 파일 또는 추적 테이블 채우기 및 관리 작업을 통해 추적 이벤트 데이터의 중간 흐름을 관리합니다. |
이벤트 알림 데이터의 중간 관리는 Service Broker 큐를 통해 자동으로 수행됩니다. |
서버를 다시 시작할 때마다 추적을 다시 시작해야 합니다. |
이벤트 알림을 등록하면 여러 서버 주기에서 이벤트 알림이 유지되고 트랜잭션됩니다. |
추적이 시작된 후에는 추적 실행을 제어할 수 없습니다. 중지 시간과 필터 시간을 사용하여 추적 시작 시기를 지정할 수 있습니다. 해당 추적 파일을 폴링하여 추적에 액세스할 수 있습니다. |
이벤트 알림에서 생성되는 메시지를 받는 큐에 대해 WAITFOR 문을 사용하여 이벤트 알림을 제어할 수 있습니다. 큐를 폴링하여 이벤트 알림에 액세스할 수 있습니다. |
추적을 만드는 데 필요한 최소 사용 권한은 ALTER TRACE입니다. 해당 컴퓨터에 추적 파일을 만드는 데도 사용 권한이 필요합니다. |
생성되는 이벤트 알림 유형에 따라 최소 사용 권한이 다릅니다. 자세한 내용은 CREATE EVENT NOTIFICATION(Transact-SQL)을 참조하십시오. 해당 큐에 RECEIVE 사용 권한도 필요합니다. |
원격으로 추적을 받을 수 있습니다. |
원격으로 이벤트 알림을 받을 수 있습니다. |
시스템 저장 프로시저를 사용하여 추적 이벤트를 구현합니다. |
SQL Server 데이터베이스 엔진 및 Service Broker, Transact-SQL 문 조합을 사용하여 이벤트 알림을 구현합니다. |
해당 추적 테이블 쿼리, 추적 파일 구문 분석 또는 SMO(SQL Server Management Objects) TraceReader 클래스 사용을 통해 추적 이벤트 데이터에 프로그래밍 방식으로 액세스할 수 있습니다. |
XML 형식 이벤트 데이터에 대한 XQuery 실행이나 SMO Event 클래스 사용을 통해 이벤트 데이터에 프로그래밍 방식으로 액세스할 수 있습니다. |