sys.dm_tran_version_store_space_usage(Transact-SQL)

적용 대상: SQL Server 2016(13.x) SP 2 이상 Azure SQL DatabaseNot supported.Azure Synapse Analytics Analytics Not supported. Platform System(PDW)

각 데이터베이스에 대한 버전 저장소 레코드에서 사용하는 tempdb의 총 공간을 표시하는 테이블을 반환합니다. sys.dm_tran_version_store_space_usage 개별 버전 저장소 레코드를 탐색하지 않고 데이터베이스당 tempdb에 사용된 집계된 버전 저장소 공간을 반환하므로 효율적이고 실행 비용이 많이 들지 않습니다.

버전이 지정된 각 레코드는 일부 추적 또는 상태 정보와 함께 이진 데이터로 저장됩니다. 데이터베이스 테이블의 레코드와 마찬가지로 버전 저장소 레코드도 8192바이트 페이지로 저장됩니다. 레코드가 8192바이트를 초과하면 레코드가 서로 다른 두 레코드로 분할됩니다.

버전이 지정된 레코드는 이진으로 저장되므로 서로 다른 데이터베이스의 데이터 정렬에 문제가 없습니다. sys.dm_tran_version_store_space_usage 사용하여 SQL Server 인스턴스에 있는 데이터베이스의 버전 저장소 공간 사용에 따라 tempdb 크기를 모니터링하고 계획합니다.

열 이름 데이터 형식 설명
database_id int 데이터베이스의 데이터베이스 ID입니다.

Azure SQL Database에서 값은 단일 데이터베이스 또는 탄력적 풀 내에서 고유하지만 논리 서버 내에는 없습니다.
reserved_page_count bigint 데이터베이스의 버전 저장소 레코드에 대해 tempdb로 예약된 페이지의 총 수입니다.
reserved_space_kb bigint 데이터베이스의 버전 저장소 레코드를 위해 tempdb에서 킬로바이트 단위로 사용되는 총 공간입니다.

사용 권한

SQL Server에서 VIEW SERVER STATE 권한이 필요합니다.

SQL Server 2022 이상에 대한 권한

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

예제

다음 쿼리를 사용하여 SQL Server 인스턴스에 있는 각 데이터베이스의 버전 저장소를 통해 tempdb에서 사용되는 공간을 확인할 수 있습니다.

SELECT 
  DB_NAME(database_id) as 'Database Name',
  reserved_page_count,
  reserved_space_kb 
FROM sys.dm_tran_version_store_space_usage;  

결과 집합은 다음과 같습니다.

Database Name            reserved_page_count reserved_space_kb  
------------------------ -------------------- -----------  
msdb                      0                    0             
AdventureWorks2022        10                   80             
AdventureWorks2022DW      0                    0             
WideWorldImporters        20                   160             

참고 항목

동적 관리 뷰 및 함수(Transact-SQL)
트랜잭션 관련 동적 관리 뷰 및 함수(Transact-SQL)