다음을 통해 공유


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_timelast_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 AdventureWorks2012;
GO
SELECT session_id, start_time, end_time, duration, scan_phase
    error_count, start_lsn, current_lsn, end_lsn, tran_count
    last_commit_lsn, last_commit_time, log_record_count, schema_change_count
    command_count, first_begin_cdc_lsn, last_commit_cdc_lsn, 
    last_commit_cdc_time, latency, empty_scan_count, failed_sessions_count
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

참고 항목

참조

sys.dm_cdc_errors(Transact-SQL)