sys.allocation_units (Transact-SQL)

数据库中的每个分配单元都在表中占一行。

适用范围:SQL Server(SQL Server 2008 到当前版本)。

列名

数据类型

说明

allocation_unit_id

bigint

分配单元的 ID。 在数据库中是唯一的。

type

tinyint

分配单元的类型:

0 = 已删除

1 = 行内数据(所有数据类型,但 LOB 数据类型除外)

2 = 大型对象 (LOB) 数据(text、ntext、 image、xml、大值类型以及 CLR 用户定义类型)

3 = 行溢出数据

type_desc

nvarchar(60)

对分配单元类型的说明:

  • DROPPED

  • IN_ROW_DATA

  • LOB_DATA

  • ROW_OVERFLOW_DATA

container_id

bigint

与分配单元关联的存储容器的 ID。

如果 type = 1 或 3,则 container_id = sys.partitions.hobt_id。

如果 type 为 2,则 container_id = sys.partitions.partition_id。

0 = 标记为要延迟删除的分配单元

data_space_id

int

此分配单元所在文件组的 ID。

total_pages

bigint

此分配单元分配或保留的总页数。

used_pages

bigint

实际使用的总页数。

data_pages

bigint

包含下列数据的已使用页的数目:

  • 行内数据

  • LOB 数据

  • 行溢出数据

返回的值排除了内部索引页和分配管理页。

备注

在删除或重新生成大型索引时,或者在删除或截断大型表时,数据库引擎将延迟实际页释放及其关联锁,直至事务提交完毕为止。延迟的删除操作不会立即释放已分配的空间。因此,删除或截断一个大型对象后 sys.allocation_units 随即返回的值可能无法反映可用的实际磁盘空间。

权限

要求具有 public 角色的成员身份。 有关详细信息,请参阅元数据可见性配置

请参阅

参考

sys.partitions (Transact-SQL)

对象目录视图 (Transact-SQL)

目录视图 (Transact-SQL)