sys.dm_db_file_space_usage

返回数据库中每个文件的空间使用信息。

ms174412.note(zh-cn,SQL.90).gif注意:
在 SQL Server 2005 中,此视图只适用于 tempdb 数据库
列名 数据类型 说明

database_id

smallint

数据库 ID。

file_id

smallint

文件 ID。

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 页,因为 IAM 页始终从混合区进行分配。如果 PFS 页是从统一区分配的,则包括 PFS 页。

有关详细信息,请参阅 sys.dm_tran_version_store

user_object_reserved_page_count

bigint

从统一区为数据库中的用户对象分配的总页数。计数中包括已分配区中未使用的页。

不包括 IAM 页,因为 IAM 页始终从混合区进行分配。如果 PFS 页是从统一区分配的,则包括 PFS 页。

可使用 sys.allocation_units 目录视图中的 total_pages 列来返回用户对象中每个分配单元的保留页计数。但请注意,total_pages 列包括 IAM 页。

internal_object_reserved_page_count

bigint

从统一区为文件中的内部对象分配的总页数。计数中包括已分配区中未使用的页。

不包括 IAM 页,因为 IAM 页始终从混合区进行分配。如果 PFS 页是从统一区分配的,则包括 PFS 页。

不存在可返回每个内部对象的页计数的目录视图或动态管理对象。

mixed_extent_page_count

bigint

文件的已分配混合区中的已分配和未分配总页数。混合区包含分配给不同对象的页。此计数包含文件中的所有 IAM 页。

权限

需要对服务器具有 VIEW SERVER STATE 权限。

备注

页计数始终为区级计数。所以,页计数的值始终为八的倍数。包含全局分配映射表 (GAM) 和共享全局分配映射表 (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_taskssys.dm_os_wait_statssys.dm_os_latch_stats。有关 SGAM 页的详细信息,请参阅管理区分配和可用空间

用户对象

用户对象页计数器中包括下列对象:

  • 用户定义的表和索引
  • 系统表和索引
  • 全局临时表和索引
  • 局部临时表和索引
  • 表变量
  • 表值函数中返回的表

内部对象

内部对象只包含在 tempdb 中。内部对象页计数器中包括下列对象:

  • 用于游标或假脱机操作以及临时大型对象 (LOB) 存储的工作表
  • 用于哈希联接等操作的工作文件
  • 排序段

关系基数

关系

sys.dm_db_file_space_usage.database_id、file_id

sys.dm_io_virtual_file_stats.database_id、file_id

一对一

示例

有关使用 sys.dm_db_file_space_usage 视图的示例,请参阅解决 tempdb 中磁盘空间不足的问题

请参阅

参考

动态管理视图和函数
与数据库有关的动态管理视图
sys.dm_db_task_space_usage
sys.dm_db_session_space_usage

其他资源

页和区
解决 tempdb 中磁盘空间不足的问题

帮助和信息

获取 SQL Server 2005 帮助