sys.dm_tran_current_snapshot(Transact-SQL)

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsMicrosoft Fabric의 SQL 데이터베이스

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

메모

Azure Synapse Analytics에서 부르려면 sys.dm_pdw_nodes_tran_current_snapshot라는 이름을 사용하세요. 이 구문은 Azure Synapse Analytics의 서버리스 SQL 풀에서 지원되지 않습니다.

Syntax

  
sys.dm_tran_current_snapshot  

반환된 테이블

열 이름 데이터 형식 Description
transaction_sequence_num bigint 활성 트랜잭션의 트랜잭션 시퀀스 번호입니다.
pdw_node_id int 에 적용: Azure Synapse Analytics

이 배포가 있는 노드의 식별자입니다.

Permissions

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 이상에 대한 권한

서버에 대한 SERVER PERFORMANCE STATE 권한이 필요합니다 VIEW .

Examples

다음 예에서는 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도 포함됩니다.