共用方式為


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位元組頁面中。 如果記錄超過8,192個字節,則記錄會分割成兩個不同的記錄。

由於版本設定的記錄會儲存為二進位檔,因此不同資料庫的定序並無問題。 使用 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