적용 대상:SQL 서버
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
분석 플랫폼 시스템(PDW)
Microsoft Fabric의 SQL 데이터베이스
버전 저장소에서 가장 많은 버전을 생성하는 개체에 대한 가상 테이블을 반환합니다. sys.dm_tran_top_version_generators database_id rowset_id 그룹화된 상위 256개의 집계 레코드 길이를 반환합니다. sys.dm_tran_top_version_generators dm_tran_version_store 가상 테이블을 쿼리하여 데이터를 검색합니다. 이 보기는 버전 저장소를 쿼리하고 버전 저장소는 매우 클 수 있으므로 sys.dm_tran_top_version_generators 실행할 비효율적인 보기입니다. 이 함수를 사용하여 버전 저장소의 가장 큰 소비자를 찾는 것이 좋습니다.
참고 항목
Azure Synapse Analytics 또는 PDW(Analytics Platform System)에서 이를 호출하려면 이름 sys.dm_pdw_nodes_tran_top_version_generators 사용합니다. 이 구문은 Azure Synapse Analytics의 서버리스 SQL 풀에서 지원되지 않습니다.
구문
sys.dm_tran_top_version_generators
반환된 테이블
| 열 이름 | 데이터 형식 | 설명 |
|---|---|---|
| database_id | int | 데이터베이스 ID입니다. Azure SQL Database에서 값은 단일 데이터베이스 또는 탄력적 풀 내에서 고유하지만 논리 서버 내에는 고유하지 않습니다. |
| rowset_id | bigint | 행 집합 ID입니다. |
| aggregated_record_length_in_bytes | int | 버전 저장소의 각 database_id 및 rowset_id 쌍에 대한 레코드 길이의 합계입니다. |
| 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 권한이 필요합니다.
설명
sys.dm_tran_top_version_generators 전체 버전 저장소를 검색할 때 많은 페이지를 읽어야 할 수 있으므로 sys.dm_tran_top_version_generators 실행하면 시스템 성능을 방해할 수 있습니다.
예제
다음 예에서는 ALLOW_SNAPSHOT_ISOLATION 및 READ_COMMITTED_SNAPSHOT 옵션이 ON으로 설정된 데이터베이스에서 각각 XSN(트랜잭션 시퀀스 번호)으로 식별되는 4개의 동시 트랜잭션이 실행되는 테스트 시나리오를 사용합니다. 다음 트랜잭션이 실행 중입니다.
XSN-57은 직렬화 가능한 격리에서 업데이트 작업입니다.
XSN-58은 XSN-57과 동일합니다.
XSN-59는 스냅샷 격리에서의 선택 작업입니다.
XSN-60은 XSN-59와 동일합니다.
다음 쿼리가 실행됩니다.
SELECT
database_id,
rowset_id,
aggregated_record_length_in_bytes
FROM sys.dm_tran_top_version_generators;
결과 집합은 다음과 같습니다.
database_id rowset_id aggregated_record_length_in_bytes
----------- -------------------- ---------------------------------
9 72057594038321152 87
9 72057594038386688 33
출력은 모든 버전이 만들어 database_id``9 지고 버전이 두 테이블에서 생성됨을 보여 줍니다.
참고 항목
동적 관리 뷰 및 함수(Transact-SQL)
트랜잭션 관련 동적 관리 뷰 및 함수(Transact-SQL)