sys.dm_tran_version_store_space_usage(Transact-SQL)

対象者:SQL Server 2016 (13.x) SP2 以降のバージョン Azure SQL DatabaseAzure SQL Managed InstanceSQL Database in Microsoft Fabric

各データベースのバージョン ストア レコードで使用される tempdb の合計領域を表示するテーブルを返します。 sys.dm_tran_version_store_space_usage は、個々のバージョン ストア レコード間を移動せず、データベースごとに tempdb で消費された集計バージョン ストア領域を返すので、効率的で、実行にコストがかかりません。

バージョン管理された各レコードは、一部の追跡または状態情報と共にバイナリ データとして格納されます。 データベース テーブル内のレコードと同様、バージョン ストア レコードは 8,192 バイトのページに格納されます。 レコードが 8,192 バイトを超える場合、レコードは 2 つの異なるレコードに分割されます。

バージョン管理されたレコードはバイナリとして格納されるため、異なるデータベースと異なる照合順序に問題はありません。 sys.dm_tran_version_store_space_usage を使用して、SQL Server インスタンス内のデータベースのバージョン ストア領域の使用状況に基づいて、tempdb サイズを監視および計画します。

列名 データの種類 Description
database_id int データベースのデータベース ID。

Azure SQL Database では、値は 1 つのデータベースまたは Elastic Pool 内で一意ですが、論理サーバー内では一意ではありません。
reserved_page_count bigint データベースのバージョン ストア レコード用に tempdb で予約されているページの合計数。
reserved_space_kb bigint データベースのバージョン ストア レコードの tempdb で使用される合計領域 (キロバイト単位)。

Permissions

SQL Server では、VIEW SERVER STATE 権限が必要です。

SQL Server 2022 以降でのアクセス許可

サーバー VIEW PERFORMANCE STATE権限が必要です。

Examples

次のクエリを使用して、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