sys.partitions (Transact-SQL)

適用于:SQL Server (所有支援的版本) Azure SQL Database Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW)

針對資料庫中所有資料表和大部分類型索引的每個資料分割,都各包含一個資料列。 這個檢視表中不包含特殊索引類型,例如全文檢索、空間和 XML。 SQL Server中的所有資料表和索引都包含至少一個分割區,不論它們是否明確分割。

資料行名稱 資料類型 描述
partition_id bigint 指出資料分割識別碼。 在資料庫中,這是唯一的。
object_id int 指出這個資料分割所屬物件的識別碼。 每份資料表或檢視表至少都是由一個資料分割組成。
index_id int 指出這個資料分割所屬物件內的索引識別碼。

0 = 堆積
1 = 叢集索引
2 或以上 = 非叢集索引
partition_number int 這是在擁有索引或堆積內,以 1 為底的資料分割編號。 如果是非資料分割的資料表和索引,這個資料行的值便是 1。
hobt_id bigint 指出包含此資料分割之資料列的資料堆積或 B 型樹狀結構 (HoBT) 識別碼。
rows bigint 指出這個資料分割中的近似資料列數。
filestream_filegroup_id smallint 適用于:SQL Server 2012 (11.x) 和更新版本。

指出儲存在這個資料分割上之 FILESTREAM 檔案群組的識別碼。
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。

權限

需要 public 角色的成員資格。 如需相關資訊,請參閱 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 系統目錄 FAQ