sys.dm_tran_current_snapshot(Transact-SQL)
적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW)
현재 스냅샷 트랜잭션이 시작될 때의 모든 활성 트랜잭션을 표시하는 가상 테이블을 반환합니다. 현재 트랜잭션이 스냅샷 트랜잭션이 아니면 이 함수는 행을 반환하지 않습니다. sys.dm_tran_current_snapshot sys.dm_tran_current_snapshot 현재 스냅샷 트랜잭션에 대한 활성 트랜잭션만 반환한다는 점을 제외하고 sys.dm_tran_transactions_snapshot 비슷합니다.
참고 항목
Azure Synapse Analytics 또는 PDW(Analytics Platform System)에서 이를 호출하려면 이름 sys.dm_pdw_nodes_tran_current_snapshot 사용합니다. 이 구문은 Azure Synapse Analytics의 서버리스 SQL 풀에서 지원되지 않습니다.
구문
sys.dm_tran_current_snapshot
반환된 테이블
열 이름 | 데이터 형식 | 설명 |
---|---|---|
transaction_sequence_num | bigint | 활성 트랜잭션의 트랜잭션 시퀀스 번호입니다. |
pdw_node_id | int | 적용 대상: Azure Synapse Analytics, Analytics Platform System(PDW) 이 배포가 있는 노드의 식별자입니다. |
사용 권한
SQL Server 및 SQL Managed Instance에서는 VIEW SERVER STATE
권한이 필요합니다.
SQL Database Basic, S0 및 S1 서비스 목표 또는 탄력적 풀 내의 데이터베이스에 대해서는 서버 관리자 계정, Microsoft Entra 관리자 계정 또는 ##MS_ServerStateReader##
서버 역할의 멤버 자격이 필요합니다. 다른 모든 SQL Database 서비스 목표에 대해서는 데이터베이스에 대한 VIEW DATABASE STATE
권한 또는 ##MS_ServerStateReader##
서버 역할의 멤버 자격이 필요합니다.
SQL Server 2022 이상에 대한 사용 권한
서버에 대한 VIEW SERVER PERFORMANCE STATE 권한이 필요합니다.
예제
다음 예에서는 ALLOW_SNAPSHOT_ISOLATION 및 READ_COMMITTED_SNAPSHOT 옵션이 ON으로 설정된 데이터베이스에서 각각 XSN(트랜잭션 시퀀스 번호)으로 식별되는 4개의 동시 트랜잭션이 실행되는 테스트 시나리오를 사용합니다. 다음 트랜잭션이 실행 중입니다.
XSN-57은 직렬화 가능한 격리에서 업데이트 작업입니다.
XSN-58은 XSN-57과 동일합니다.
XSN-59는 스냅샷 격리에서의 선택 작업입니다.
XSN-60은 XSN-59와 동일합니다.
다음 쿼리는 XSN-59 범위 내에서 실행됩니다.
SELECT
transaction_sequence_num
FROM sys.dm_tran_current_snapshot;
결과 집합은 다음과 같습니다.
transaction_sequence_num
------------------------
57
58
결과는 스냅샷 트랜잭션 XSN-59가 시작될 때 XSN-57과 XSN-58이 활성 상태였음을 보여 줍니다. 이 동일한 결과는 스냅샷 트랜잭션이 완료될 때까지 XSN-57 및 XSN-58 커밋 또는 롤백 후에도 유지됩니다.
동일한 쿼리가 XSN-60 범위 내에서 실행됩니다.
결과 집합은 다음과 같습니다.
transaction_sequence_num
------------------------
57
58
59
XSN-60의 출력에는 XSN-59에 대해 표시되는 동일한 트랜잭션이 포함되지만 XSN-60이 시작될 때 활성화된 XSN-59도 포함됩니다.
참고 항목
동적 관리 뷰 및 함수(Transact-SQL)
트랜잭션 관련 동적 관리 뷰 및 함수(Transact-SQL)