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