共用方式為


sys.dm_db_file_space_usage (Transact-SQL)

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

適用於:SQL Server (SQL Server 2008 至目前版本)。

資料行名稱

資料類型

描述

database_id

smallint

資料庫識別碼。

file_id

smallint

檔案識別碼。

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

filegroup_id

smallint

檔案群組識別碼。

適用於:SQL Server 2012 至 SQL Server 2014。

total_page_count

bigint

檔案中的總頁數。

適用於:SQL Server 2012 至 SQL Server 2014。

allocated_extent_page_count

bigint

檔案中的已配置範圍中的總頁數。

適用於:SQL Server 2012 至 SQL Server 2014。

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

使用者物件

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

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

  • 系統資料表和索引

  • 全域暫存資料表和索引

  • 本機暫存資料表和索引

  • 資料表變數

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

內部物件

內部物件只位於 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 權限。

範例

判斷 tempdb 的可用空間量

下列查詢會傳回 tempdb 的所有檔案中可用的總頁數和總空間 (以 MB 表示)。

USE tempdb;
GO
SELECT SUM(unallocated_extent_page_count) AS [free pages], 
(SUM(unallocated_extent_page_count)*1.0/128) AS [free space in MB]
FROM sys.dm_db_file_space_usage;

判斷使用者物件使用的空間量

下列查詢會傳回 tempdb 中使用者物件使用的總頁數和使用者物件使用的總空間。

USE tempdb;
GO
SELECT SUM(user_object_reserved_page_count) AS [user object pages used],
(SUM(user_object_reserved_page_count)*1.0/128) AS [user object space in MB]
FROM sys.dm_db_file_space_usage;

請參閱

參考

動態管理檢視和函數 (Transact-SQL)

資料庫相關的動態管理檢視 (Transact-SQL)

sys.dm_db_task_space_usage (Transact-SQL)

sys.dm_db_session_space_usage (Transact-SQL)