sys.partitions (Transact-SQL)
适用于: SQL Server Azure SQL Database
Azure SQL 托管实例
Azure Synapse Analytics
Analytics Platform System (PDW)
数据库中的所有表和大部分类型的索引的每个分区各对应一行。 此视图中不包括特殊索引类型,例如全文、空间和 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。 |
行 | bigint | 指示此分区中的大约行数。 |
filestream_filegroup_id | smallint | 适用于:SQL Server 2012 (11.x) 及更高版本。 指示在此分区上存储的 FILESTREAM 文件组的 ID。 |
data_compression | tinyint | 指示每个分区的压缩状态: 0 = NONE 1 = ROW 2 = PAGE 3 = COLUMNSTORE:适用于:SQL Server 2012 (11.x) 及更高版本 4 = COLUMNSTORE_ARCHIVE:适用于:SQL Server 2014 (12.x) 及更高版本 注意:将在任何版本的 SQL Server 中压缩全文索引。 |
data_compression_desc | nvarchar(60) | 指示每个分区的压缩状态。 行存储表的可能值为 NONE、ROW 和 PAGE。 列存储表的可能值为 COLUMNSTORE 和 COLUMNSTORE_ARCHIVE。 |
权限
要求 公共 角色具有成员身份。 有关详细信息,请参阅 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
JOIN sys.allocation_units AS au ON p.partition_id = au.container_id
ORDER BY SpaceUsed_MB DESC;
另请参阅
对象目录视图 (Transact-SQL)
目录视图 (Transact-SQL)
查询 SQL Server 系统目录常见问题