확장 이벤트 세션
적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance
확장 이벤트 세션은 확장 이벤트 엔진을 호스트하는 SQL Server 데이터베이스 엔진 프로세스에서 만들어집니다. 확장 이벤트 세션의 다음과 같은 요소는 확장 이벤트 인프라 및 프로세스를 파악할 수 있는 컨텍스트를 제공합니다.
세션 상태 확장 이벤트 세션이 실행될 때
CREATE EVENT SESSION
및ALTER EVENT SESSION
문이 실행되는 다양한 상태입니다.세션 콘텐츠 및 특성 대상 및 이벤트와 같은 확장 이벤트 세션의 콘텐츠와 이러한 개체가 세션 또는 세션 간에 관련되는 방식입니다.
세션 상태
다음 그림에서는 확장 이벤트 세션의 다양한 상태를 보여 줍니다.
앞의 그림을 참조하여 이벤트 세션에 대해 다른 DDL(데이터 정의 언어) 명령이 실행됨에 따라 세션 상태가 변경되는 것을 관찰합니다. 다음 표에서는 이러한 상태 변화에 대해 설명합니다.
일러스트레이션 레이블 | DDL 문 | 설명 |
---|---|---|
만들기 | CREATE EVENT SESSION |
호스트 프로세스는 CREATE EVENT SESSION 에서 제공하는 메타데이터를 포함하는 세션 개체를 만듭니다. 호스트 프로세스는 세션 정의 및 사용자 권한 수준을 검사하고 master 데이터베이스에 메타데이터를 저장합니다. 이 시점에서 세션이 활성화되지 않습니다. |
변경 | ALTER EVENT SESSION : STATE=START |
호스트 프로세스가 세션을 시작합니다. 호스트 프로세스는 저장된 메타데이터를 읽고 세션 정의를 확인하며 사용자 권한 수준을 확인하고 세션을 만듭니다. 이벤트 및 대상과 같은 세션 개체가 로드되고 이벤트 처리가 활성화됩니다. |
변경 | ALTER EVENT SESSION : STATE=STOP |
호스트 프로세스는 활성 세션을 중지하지만 메타데이터를 유지합니다. |
Drop | DROP EVENT SESSION |
세션이 활성 상태인지 여부에 따라 Drop(DROP SESSION )은 메타데이터를 삭제하고 활성 세션을 닫거나 세션 메타데이터를 삭제합니다. |
세션 콘텐츠 및 특성
확장 이벤트 세션에는 한 세션의 구성이 다른 세션의 구성을 변경하지 않는다는 암시적 경계가 있습니다. 그러나 이러한 경계는 이벤트 또는 대상 형식이 둘 이상의 세션에서 사용되는 것을 방지하지 않습니다.
다음 그림에서는 세션 콘텐츠와 패키지와 세션 간의 관계를 보여 줍니다.
앞의 그림을 참조하여 다음 사항에 유의하십시오.
- 패키지 개체와 세션 간의 매핑은 다 대 다입니다. 즉, 특정 형식의 개체가 여러 세션에 나타날 수 있으며 세션에 여러 개체가 포함될 수 있습니다.
- 동일한 이벤트(이벤트 1) 또는 대상 유형(대상 1)을 둘 이상의 세션에서 사용할 수 있습니다.
세션에는 다음과 같은 특성이 있습니다.
- 작업 및 조건자는 세션별로 이벤트에 바인딩됩니다. 작업 1 및 조건자 Z가 있는 세션 A에 이벤트 1이 있는 경우 이는 조건자가 없는 Action 2 및 Action 3이 있는 세션 B에서 이벤트 1을 갖는 데 어떤 식으로든 영향을 주지 않습니다.
- 정책이 세션에 연결되어 버퍼링과 디스패치, 인과 관계 추적을 처리합니다.
버퍼링은 이벤트 세션이 실행되는 동안 이벤트 데이터가 저장되는 방식을 나타냅니다. 버퍼링 정책은 이벤트 데이터에 사용할 메모리 양과 이벤트에 대한 손실 정책을 지정합니다. 디스패치는 처리 대상에 제공되기 전에 이벤트가 버퍼에 유지되는 기간을 나타냅니다.
인과관계 추적은 여러 작업에 걸쳐 작동합니다. 인과 관계 추적을 사용하도록 설정하면 발생한 각 이벤트에는 시스템 전체에서 고유한 활동 ID가 있습니다. 작업 ID는 작업에 대한 모든 이벤트에서 일정하게 유지되는 GUID 값과 이벤트가 발생할 때마다 증가하는 시퀀스 번호의 조합입니다. 한 작업으로 인해 다른 작업에서 작업이 수행되면 부모의 활동 ID가 자식 작업으로 전송됩니다. 자식 태스크는 처음 이벤트를 발생시킬 때 부모의 작업 ID를 출력합니다.