다음에 적용됩니다:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Microsoft Fabric의 SQL 데이터베이스
각 스냅샷 트랜잭션이 시작될 때 활성 상태인 트랜잭션의 sequence_number 대한 가상 테이블을 반환합니다. 이 보기에서 반환되는 정보는 다음을 수행하는 데 도움이 될 수 있습니다.
현재 활성 스냅샷 트랜잭션 수를 찾습니다.
특정 스냅샷 트랜잭션에서 무시하는 데이터 수정 내용을 식별합니다. 스냅샷 트랜잭션이 시작될 때 활성 상태인 트랜잭션의 경우 해당 트랜잭션이 커밋된 후에도 해당 트랜잭션의 모든 데이터 수정은 스냅샷 트랜잭션에서 무시됩니다.
예를 들어 sys.dm_tran_transactions_snapshot 다음 출력을 고려합니다.
transaction_sequence_num snapshot_id snapshot_sequence_num
------------------------ ----------- ---------------------
59 0 57
59 0 58
60 0 57
60 0 58
60 0 59
60 3 57
60 3 58
60 3 59
60 3 60
이 열은 transaction_sequence_num 현재 스냅샷 트랜잭션의 XSN(트랜잭션 시퀀스) 번호를 식별합니다. 이 출력은 59와 60의 두 번호를 표시합니다.
snapshot_sequence_num 열은 각 스냅샷 트랜잭션이 시작될 때 활성 상태인 트랜잭션의 트랜잭션 시퀀스 번호를 식별합니다.
출력은 두 개의 활성 트랜잭션인 XSN-57 및 XSN-58이 실행되는 동안 스냅샷 트랜잭션 XSN-59가 시작되었음을 보여 줍니다. XSN-57 또는 XSN-58에서 데이터를 수정하는 경우 XSN-59는 변경 내용을 무시하고 행 버전 관리를 사용하여 데이터베이스의 트랜잭션 일치 보기를 유지 관리합니다.
스냅샷 트랜잭션 XSN-60은 XSN-57 및 XSN-58 및 XSN 59에서 수정한 데이터를 무시합니다.
반환된 테이블
| 열 이름 | 데이터 형식 | Description |
|---|---|---|
| transaction_sequence_num | bigint | 스냅샷 트랜잭션의 XSN(트랜잭션 시퀀스 번호)입니다. |
| snapshot_id | int | 행 버전 관리를 사용하여 커밋된 읽기에서 시작된 각 Transact-SQL 문의 스냅샷 ID입니다. 이 값은 행 버전 관리를 사용하여 커밋된 읽기로 실행되는 각 쿼리를 지원하는 트랜잭션이 일관된 데이터베이스 뷰를 생성하는 데 사용됩니다. |
| snapshot_sequence_num | bigint | 스냅샷 트랜잭션 시작 당시 활성화된 트랜잭션의 트랜잭션 시퀀스 번호입니다. |
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 .
비고
스냅샷 트랜잭션이 시작되면 데이터베이스 엔진 해당 시간에 활성 상태인 모든 트랜잭션을 기록합니다. sys.dm_tran_transactions_snapshot 현재 활성 상태인 모든 스냅샷 트랜잭션에 대해 이 정보를 보고합니다.
각 트랜잭션은 트랜잭션이 시작될 때 할당되는 트랜잭션 시퀀스 번호로 식별됩니다. 트랜잭션은 BEGIN TRANSACTION 또는 BEGIN WORK 문이 실행될 때 시작됩니다. 그러나 데이터베이스 엔진 BEGIN TRANSACTION 또는 BEGIN WORK 문 다음에 데이터에 액세스하는 첫 번째 Transact-SQL 문의 실행과 함께 트랜잭션 시퀀스 번호를 할당합니다. 트랜잭션 시퀀스 번호는 1씩 증가합니다.