다음을 통해 공유


이벤트 알림 및 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 사용 권한도 필요합니다.

원격으로 추적을 받을 수 있습니다.

원격으로 이벤트 알림을 받을 수 있습니다.

시스템 저장 프로시저를 사용하여 추적 이벤트를 구현합니다.

데이터베이스 엔진 및 Service BrokerTransact-SQL 문 조합을 사용하여 이벤트 알림을 구현합니다.

해당 추적 테이블 쿼리, 추적 파일 구문 분석 또는 SMO(SQL Server Management Objects) TraceReader 클래스 사용을 통해 추적 이벤트 데이터에 프로그래밍 방식으로 액세스할 수 있습니다.

XML 형식 이벤트 데이터에 대한 XQuery 실행이나 SMO Event 클래스 사용을 통해 이벤트 데이터에 프로그래밍 방식으로 액세스할 수 있습니다.