分享方式:


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 中耗用的匯總版本存放區空間。

每個版本設定的記錄都會儲存為二進位數據,以及一些追蹤或狀態資訊。 類似於資料庫數據表中的記錄,版本存放區記錄會儲存在8192位元組頁面中。 如果記錄超過8192個字節,記錄將會分割成兩個不同的記錄。

由於版本設定的記錄會儲存為二進位檔,因此不同資料庫的定序並無問題。 使用 sys.dm_tran_version_store_space_usage ,根據 SQL Server 實例中資料庫的資料庫儲存空間使用量,監視及規劃 tempdb 大小。

資料行名稱 資料類型 描述
database_id int 資料庫的資料庫標識碼。

在 Azure SQL 資料庫中,這些值在單一資料庫或彈性集區內是唯一的,但在邏輯伺服器內則不是唯一的。
reserved_page_count bigint tempdb 中保留給資料庫版本存放區記錄的頁面總數。
reserved_space_kb bigint tempdb 中用於資料庫版本存放區記錄的 KB 總空間。

權限

在 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)