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 压缩状态。 可能的值为 OFF 和 ON 。 |
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;