sys.dm_tran_current_스냅샷(Transact-SQL)

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System(PDW)

현재 스냅샷 트랜잭션이 시작될 때의 모든 활성 트랜잭션을 표시하는 가상 테이블을 반환합니다. 현재 트랜잭션이 스냅샷 트랜잭션이 아니면 이 함수는 행을 반환하지 않습니다. sys.dm_tran_current_스냅샷 sys.dm_tran_current_스냅샷 현재 스냅샷 트랜잭션에 대한 활성 트랜잭션만 반환한다는 점을 제외하고 sys.dm_tran_transactions_스냅샷 비슷합니다.

참고 항목

Azure Synapse Analytics 또는 PDW(Analytics Platform System)에서 이를 호출하려면 이름 sys.dm_pdw_nodes_tran_current_스냅샷 사용합니다. 이 구문은 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, S0S1 서비스 목표 및 탄력적 풀의 데이터베이스에는 서버 관리자 계정, 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)