sys.partitions (Transact-SQL)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse AnalyticsAnalytics Platform System (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;