sys.dm_tran_top_version_generators(Transact-SQL)

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

버전 저장소에서 가장 많은 버전을 생성하는 개체에 대한 가상 테이블을 반환합니다. 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, S0S1 서비스 목표 및 탄력적 풀의 데이터베이스에는 서버 관리자 계정, 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)