分享方式:


sys.partitions (Transact-SQL)

適用於:sql Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW) SQL 分析端點在 Microsoft 網狀架構的網狀架構倉儲中Microsoft網狀架構

針對資料庫中所有數據表和大多數索引類型的每個分割區,各包含一個數據列。 此檢視中不包含特殊索引類型,例如全文檢索、空間和 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 1
4 = COLUMNSTORE_ARCHIVE 2

注意: 全文檢索索引會在任何版本的 SQL Server 中壓縮。
data_compression_desc nvarchar(60) 指出每個分割區的壓縮狀態。 資料欄存放區資料表 NONE的可能值為、 ROWPAGE。 資料存放區資料表 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) 和更新版本。

權限

需要 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
INNER JOIN sys.allocation_units AS au
    ON p.partition_id = au.container_id
ORDER BY SpaceUsed_MB DESC;