sys.internal_partitions (Transact-SQL)

適用於: SQL Server 2016 (13.x) 和更新版本 Azure SQL DatabaseAzure SQL 受控執行個體

針對每個資料列集傳回一個資料列集,以追蹤磁片資料表上資料行存放區索引的內部資料。 這些資料列集是資料行存放區索引的內部,可追蹤已刪除的資料列、資料列群組對應,以及差異存放區資料列群組。 它們會追蹤每個資料表資料分割的資料;每個資料表至少有一個資料分割。 每次重建資料行存放區索引時,SQL Server 會重新建立資料列集。

資料行名稱 資料類型 描述
partition_id bigint 此資料分割的資料分割識別碼。 這是資料庫內唯一的。
object_id int 包含資料分割之資料表的物件識別碼。
index_id int 資料表上定義之資料行存放區索引的索引識別碼。

1 = 叢集資料行存放區索引

2 = 非叢集資料行存放區索引
partition_number int 資料分割編號。

1 = 資料分割資料表的第一個分割區,或非分割資料表的單一分割區。

2 = 第二個數據分割,依故。
internal_object_type tinyint 追蹤資料行存放區索引內部資料的資料列集物件。

2 = COLUMN_STORE_DELETE_BITMAP

3 = COLUMN_STORE_DELTA_STORE

4 = COLUMN_STORE_DELETE_BUFFER

5 = COLUMN_STORE_MAPPING_INDEX
internal_object_type_desc nvarchar(60) COLUMN_STORE_DELETE_BITMAP - 此點陣圖索引會追蹤標示為從資料行存放區中刪除的資料列。 點陣圖適用于每個資料列群組,因為分割區可以有多個資料列群組中的資料列。 資料列仍會實際存在,並佔用資料行存放區中的空間。

COLUMN_STORE_DELTA_STORE - 儲存尚未壓縮成單欄式儲存體的資料列群組,稱為資料列群組。 每個資料表分割區可以有零個或多個差異存放區資料列群組。

COLUMN_STORE_DELETE_BUFFER - 為了維護可更新的非叢集資料行存放區索引的刪除。 當查詢從基礎資料列存放區資料表中刪除資料列時,刪除緩衝區會追蹤資料行存放區中的刪除。 當已刪除的資料列數目超過1048576時,會透過背景 Tuple Mover 執行緒或明確的 Reorganize 命令,將其合併回刪除點陣圖。 在任何指定的時間點,刪除點陣圖和刪除緩衝區的聯集代表所有已刪除的資料列。

COLUMN_STORE_MAPPING_INDEX - 只有在叢集資料行存放區索引具有次要非叢集索引時才使用。 這會將非叢集索引鍵對應至資料行存放區中正確的資料列群組和資料列識別碼。 它只會儲存移至不同資料列群組之資料列的索引鍵;當差異資料列群組壓縮到資料行存放區,以及合併作業合併兩個不同資料列群組的資料列時,就會發生這種情況。
Row_group_id int 差異存放區資料列群組的識別碼。 每個資料表分割區可以有零個或多個差異存放區資料列群組。
hobt_id bigint 內部資料列集物件的識別碼(HoBT)。 這是與其他 DMV 聯結的好索引鍵,可取得內部資料列集實體特性的詳細資訊。
rows bigint 此分割區中大約的資料列數目。
data_compression tinyint 資料列集的壓縮狀態:

0 = NONE

1 = ROW

2 = PAGE
data_compression_desc nvarchar(60) 每個分割區的壓縮狀態。 資料列存放區資料表的可能值為 NONE、ROW 和 PAGE。 資料行存放區資料表的可能值為 COLUMNSTORE 和 COLUMNSTORE_ARCHIVE。
optimize_for_sequential_key bit 1 = 資料分割已啟用最後一頁插入優化。

0 = 預設值。 資料分割已停用最後一頁插入優化。

權限

需要 public 角色中的成員資格。 如需相關資訊,請參閱 Metadata Visibility Configuration

一般備註

SQL Server 會在每次建立或重建資料行存放區索引時,重新建立新的資料行存放區內部索引。

範例

A. 檢視資料表的所有內部資料列集

本範例會傳回資料表的所有內部資料行存放區資料列集。 您也可以使用hobt_id來尋找特定資料列集的詳細資訊。

SELECT i.object_id, i.index_id, i.name, p.hobt_id, p.internal_object_type_id, p.internal_object_type_desc  
FROM sys.internal_partitions AS p  
JOIN sys.indexes AS i  
on i.object_id = p.object_id  
WHERE p.object_id = OBJECT_ID ( '<table name' ) ;  

另請參閱

物件目錄檢視 (Transact-SQL)
目錄檢視 (Transact-SQL)
查詢 SQL Server 系統目錄常見問題