次の方法で共有


sys.dm_tran_version_store_space_usage (Transact-SQL)

適用対象: SQL Server 2016 (13.x) SP 2 以降 Azure SQL データベース サポートされていません。 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