sys.dm_tran_top_version_generators(Transact-SQL)
적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform 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, 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)