sys.partitions (Transact-SQL)

适用于: SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics 分析平台系统 (PDW) Microsoft Fabric 中的 SQL 分析端点 Microsoft Fabric 中的仓库

数据库中的所有表和大部分类型的索引的每个分区各对应一行。 此视图中不包括特殊索引类型,例如全文、空间和 XML。 SQL Server 中的所有表和索引都至少包含一个分区,无论它们是否显式分区。

列名称 数据类型 说明
partition_id bigint 指示分区 ID。 数据库中的唯一性。
object_id int 指示此分区所属的对象的 ID。 每个表或视图都至少包含一个分区。
index_id int 指示此分区所属的对象内的索引的 ID。

0 = 堆
1 = 聚集索引
2 或更高 = 非聚集索引
partition_number int 自有索引或堆中的基于 1 的分区号。 对于非分区表和索引,此列的值为 1
hobt_id bigint 指示包含此分区行的数据堆或 B 树(HoBT)的 ID。
rows bigint 指示此分区中的大约行数。
filestream_filegroup_id smallint 适用于:SQL Server 2012 (11.x) 及更高版本。

指示在此分区上存储的 FILESTREAM 文件组的 ID。
data_compression tinyint 指示每个分区的压缩状态:

0 = NONE
1 = ROW
2 = PAGE
3 = COLUMNSTORE 1
4 = COLUMNSTORE_ARCHIVE 2

注意: 全文索引在任何版本的 SQL Server 中都压缩。
data_compression_desc nvarchar(60) 指示每个分区的压缩状态。 行存储表 NONE的可能值为, ROW以及 PAGE。 列存储表 COLUMNSTORE 的可能值为和 COLUMNSTORE_ARCHIVE
xml_compression bit 适用于:SQL Server 2022 (16.x) 及更高版本。

指示每个分区的 XML 压缩状态:

0 = OFF
1 = ON
xml_compression_desc varchar(3) 适用于:SQL Server 2022 (16.x) 及更高版本。

指示每个分区的 XML 压缩状态。 可能的值为 OFFON

1 适用于:SQL Server 2012 (11.x) 及更高版本。

2 适用于:SQL Server 2014 (12.x) 及更高版本。

权限

要求 公共 角色具有成员身份。 有关详细信息,请参阅 Metadata Visibility Configuration

示例

以下查询返回数据库中的所有对象、每个对象中使用的空间量以及与每个对象相关的分区信息。

SELECT object_name(object_id) AS ObjectName,
    total_pages / 128. AS SpaceUsed_MB,
    p.partition_id,
    p.object_id,
    p.index_id,
    p.partition_number,
    p.rows,
    p.data_compression_desc
FROM sys.partitions AS p
INNER JOIN sys.allocation_units AS au
    ON p.partition_id = au.container_id
ORDER BY SpaceUsed_MB DESC;