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