sys.dm_db_file_space_usage (Transact-SQL)

傳回資料庫中每一個檔案的空間使用方式資訊。

[!附註]

這份檢視只適用於 tempdb 資料庫

資料行名稱

資料類型

描述

database_id

smallint

資料庫識別碼。

file_id

smallint

檔案識別碼。

file_id 會對應至 sys.dm_io_virtual_file_stats 中的 file_id 及 sys.sysfiles 中的 fileid。

unallocated_extent_page_count

bigint

檔案中的未配置範圍中的總頁數。如需詳細資訊,請參閱<了解頁面與範圍>。

不包含已配置範圍中的未使用頁面。

version_store_reserved_page_count

bigint

配置給版本存放區的一致範圍中的總頁數。絕不從混合範圍配置版本存放區頁面。

不包含 IAM 頁面,因為它們一律從混合範圍中配置。如果 PFS 頁面是從一致範圍配置,則會包含它們。

如需詳細資訊,請參閱<sys.dm_tran_version_store (Transact-SQL)>。

user_object_reserved_page_count

bigint

從一致範圍中配置給資料庫使用者物件的總頁數。這個計數不包括已配置範圍中的未使用頁面。

不包含 IAM 頁面,因為它們一律從混合範圍中配置。如果 PFS 頁面是從一致範圍配置,則會包含它們。

您可以使用 sys.allocation_units 目錄檢視中的 total_pages 資料行,傳回使用者物件中每一個配置單位的已保留頁數。不過請注意,total_pages 資料行包含 IAM 頁面。

internal_object_reserved_page_count

bigint

配置給檔案中內部物件之一致範圍中的總頁數。這個計數不包括已配置範圍中的未使用頁面。

不包含 IAM 頁面,因為它們一律從混合範圍中配置。如果 PFS 頁面是從一致範圍配置,則會包含它們。

沒有目錄檢視或動態管理物件可傳回每一個內部物件的頁數。

mixed_extent_page_count

bigint

檔案中已配置混合範圍的已配置和未配置總頁數。混合範圍包含已配置給不同物件的頁面。這個計數包含檔案中的所有 IAM 頁面。

備註

頁數一律在範圍層級上產生。因此,頁數值一定是 8 的倍數。包含 Global Allocation Map (GAM) 和 Shared Global Allocation Map (SGAM) 配置頁的範圍就是已配置的一致範圍。上述頁數並不包含它們。

目前版本存放區的內容是在 sys.dm_tran_version_store 中。版本存放區頁面是在檔案層級上追蹤,而不是工作階段和工作層級,因為它們是全域資源。工作階段可產生版本,但工作階段結束時無法移除版本。版本存放區清除必須考慮需要存取特定版本之執行最久的交易。可在 sys.dm_tran_active_snapshot_database_transactions 中檢視 elapsed_time_seconds 資料行,以探索與版本存放區清除相關之執行最久的交易。

mixed_extent_page_count 資料行的經常性變更可指出 SGAM 頁面使用頻繁。發生這個情形時,您會看到許多 PAGELATCH_UP 等待,其中的等待資源就是 SGAM 頁面。如需詳細資訊,請參閱<sys.dm_os_waiting_tasks (Transact-SQL)>、<sys.dm_os_wait_stats (Transact-SQL)>和<sys.dm_os_latch_stats (Transact-SQL)>。如需有關 SGAM 頁面的詳細資訊,請參閱<管理範圍配置與可用空間>。

使用者物件

下列物件已包括在使用者物件頁面計數器中:

  • 使用者自訂資料表和索引

  • 系統資料表和索引

  • 全域暫存資料表和索引

  • 本機暫存資料表和索引

  • 資料表變數

  • 資料表值函數中傳回的資料表

內部物件

內部物件只位於 tempdb 中。下列物件已包括在內部物件頁面計數器中:

  • 用於資料指標或多工緩衝處理作業和暫存大型物件 (LOB) 儲存體的工作資料表

  • 用於如雜湊聯結等作業的工作檔案

  • 排序執行

關聯性基數

來源

目的地

關聯性

sys.dm_db_file_space_usage.database_id, file_id

sys.dm_io_virtual_file_stats.database_id, file_id

一對一

權限

需要伺服器的 VIEW SERVER STATE 權限。

範例

如需使用 sys.dm_db_file_space_usage 檢視的範例,請參閱<tempdb 磁碟空間不足的疑難排解>。