sys.dm_tran_version_store_space_usage (Transact-SQL)
適用対象: SQL Server 2016 (13.x) SP 2 以降
Azure SQL Database
Azure Synapse Analytics
Analytics Platform System (PDW)
各データベースのバージョン ストア レコードで使用される tempdb の合計領域を表示するテーブルを返します。 sys.dm_tran_version_store_space_usage は、個々のバージョン ストア レコード間を移動せず、データベースごとに tempdb で消費された集計バージョン ストア領域を返すので、効率的で、実行にコストがかかりません。
バージョン管理された各レコードは、一部の追跡または状態情報と共にバイナリ データとして格納されます。 データベース テーブル内のレコードと同様、バージョン ストア レコードは 8,192 バイトのページに格納されます。 レコードが 8,192 バイトを超える場合は、2 つのレコードに分割されます。
バージョン管理されたレコードはバイナリとして格納されるため、異なるデータベースと異なる照合順序に問題はありません。 sys.dm_tran_version_store_space_usageを使用して、SQL Server インスタンス内のデータベースのバージョン ストア領域の使用量に基づいて tempdb サイズを監視および計画します。
列名 | データ型 | 説明 |
---|---|---|
database_id | int | データベースのデータベース ID。 Azure SQL Database では、値は 1 つのデータベースまたは Elastic Pool 内で一意ですが、論理サーバー内では一意ではありません。 |
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)