sys.dm_cdc_log_scan_sessions(Transact-SQL)
현재 데이터베이스의 각 로그 검색 세션에 대해 한 개의 행을 반환합니다. 반환된 마지막 행은 현재 세션을 나타냅니다. 이 뷰를 사용하면 현재 로그 검색 세션에 대한 상태 정보, 또는 SQL Server 인스턴스가 마지막으로 시작된 이후의 모든 세션에 대한 집계 정보를 반환할 수 있습니다.
열 이름 |
데이터 형식 |
설명 |
---|---|---|
session_id |
int |
세션의 ID입니다. 0일 경우 이 행에서 반환된 데이터는 SQL Server 인스턴스가 마지막으로 시작된 이후의 모든 세션에 대한 집계입니다. |
start_time |
datetime |
세션의 시작 시간입니다. session_id가 0일 경우 집계된 데이터 컬렉션이 시작된 시간입니다. |
end_time |
datetime |
세션의 종료 시간입니다. NULL인 경우 세션이 활성 상태입니다. session_id가 0일 경우 마지막 세션이 종료된 시간입니다. |
duration |
bigint |
세션의 기간(초)입니다. 0인 경우 세션에 변경 데이터 캡처 트랜잭션이 포함되어 있지 않습니다. session_id가 0일 경우 변경 데이터 캡처 트랜잭션이 있는 모든 세션의 총 기간(초)입니다. |
scan_phase |
nvarchar(200) |
세션의 현재 단계입니다. 다음 중 하나일 수 있습니다.
단계설명
1구성 읽기
2첫 번째 검색, 해시 테이블 작성
3두 번째 검색
4두 번째 검색
5두 번째 검색
6스키마 버전 관리
7마지막 검색
8완료
session_id가 0일 경우 이 값은 항상 "Aggregate"입니다. |
error_count |
int |
오류가 발생한 횟수입니다. session_id가 0일 경우 모든 세션에서 발생한 총 오류 수입니다. |
start_lsn |
nvarchar(23) |
세션의 시작 LSN입니다. session_id가 0일 경우 마지막 세션의 시작 LSN입니다. |
current_lsn |
nvarchar(23) |
현재 검색 중인 LSN입니다. session_id가 0일 경우 현재 LSN은 0입니다. |
end_lsn |
nvarchar(23) |
세션의 종료 LSN입니다. NULL인 경우 세션이 활성 상태입니다. session_id가 0일 경우 마지막 세션의 종료 LSN입니다. |
tran_count |
bigint |
처리된 변경 데이터 캡처 트랜잭션의 수입니다. 이 카운터는 2단계에서 채워집니다. session_id가 0일 경우 모든 세션에서 처리된 트랜잭션 수입니다. |
last_commit_lsn |
nvarchar(23) |
처리된 마지막 커밋 로그 레코드의 LSN입니다. session_id가 0일 경우 세션에 대한 마지막 커밋 로그 레코드 LSN입니다. |
last_commit_time |
datetime |
마지막 커밋 로그 레코드가 처리된 시간입니다. session_id가 0일 경우 세션에 대한 마지막 커밋 로그 레코드 시간입니다. |
log_record_count |
bigint |
검색된 로그 레코드 수입니다. session_id가 0일 경우 모든 세션의 검색된 레코드 수입니다. |
schema_change_count |
int |
탐지된 DDL(데이터 정의 언어) 작업 수입니다. 이 카운터는 6단계에서 채워집니다. session_id가 0일 경우 모든 세션에서 처리된 DDL 작업 수입니다. |
command_count |
bigint |
처리된 명령 수입니다. session_id가 0일 경우 모든 세션에 대해 처리된 명령 수입니다. |
first_begin_cdc_lsn |
nvarchar(23) |
변경 데이터 캡처 트랜잭션을 포함하는 첫 번째 LSN입니다. session_id가 0일 경우 변경 데이터 캡처 트랜잭션을 포함하는 첫 번째 LSN입니다. |
last_commit_cdc_lsn |
nvarchar(23) |
변경 데이터 캡처 트랜잭션을 포함하는 마지막 커밋 로그 레코드의 LSN입니다. session_id가 0일 경우 변경 데이터 캡처 트랜잭션을 포함하는 세션에 대한 마지막 커밋 로그 레코드 LSN입니다. |
last_commit_cdc_time |
datetime |
변경 데이터 캡처 트랜잭션을 포함하는 마지막 커밋 로그 레코드가 처리된 시간입니다. session_id가 0일 경우 변경 데이터 캡처 트랜잭션을 포함하는 세션에 대한 마지막 커밋 로그 레코드 시간입니다. |
latency |
int |
세션에서 end_time과 last_commit_cdc_time 사이의 차이(초)입니다. 이 카운터는 7단계의 마지막에 채워집니다. session_id가 0일 경우 세션에서 기록된 0이 아닌 마지막 대기 값입니다. |
empty_scan_count |
int |
변경 데이터 캡처 트랜잭션을 포함하지 않은 연속적인 세션 수입니다. |
failed_sessions_count |
int |
실패한 세션 수입니다. |
주의
이 동적 관리 뷰의 값은 SQL Server 인스턴스가 시작할 때마다 다시 설정됩니다.
사용 권한
sys.dm_cdc_log_scan_sessions 동적 관리 뷰를 쿼리하려면 VIEW DATABASE STATE 권한이 필요합니다. 동적 관리 뷰 사용 권한에 대한 자세한 내용은 동적 관리 뷰 및 함수(Transact-SQL)를 참조하십시오.
예
다음 예에서는 현재 세션에 대한 정보를 반환합니다.
USE AdventureWorks;
GO
SELECT *
FROM sys.dm_cdc_log_scan_sessions
WHERE session_id = (SELECT MAX(b.session_id) from sys.dm_cdc_log_scan_sessions AS b);
GO