sys.internal_partitions (Transact-sql SQL)

適用対象: はいSQL Server 2016 (13.x) 以降 はいAzure SQL データベース はいAzure SQL Managed Instance

ディスクベーステーブルの列ストアインデックスの内部データを追跡する行セットごとに1行のデータを返します。 これらの行セットは、列ストアインデックスの内部にあり、削除された行、行グループのマッピング、およびデルタストアの行グループを追跡します。 各テーブルパーティションのデータを追跡します。各テーブルには、少なくとも1つのパーティションがあります。 SQL Server 列ストアインデックスを再構築するたびに、行セットを再作成します。

列名 データ型 説明
partition_id bigint このパーティションのパーティション ID。 データベース内で一意です。
object_id int パーティションを含むテーブルのオブジェクト ID。
index_id int テーブルで定義されている列ストアインデックスのインデックス ID。

1 = クラスター化列ストアインデックス

2 = 非クラスター化列ストアインデックス
partition_number int パーティション番号。

1 = パーティションテーブルの最初のパーティション、または非パーティションテーブルの1つのパーティション。

2 = 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-単票形式のストレージに圧縮されていない行グループと呼ばれる行のグループを格納します。 各テーブルパーティションには、0個以上のデルタストア行グループを含めることができます。

COLUMN_STORE_DELETE_BUFFER-更新可能な非クラスター化列ストアインデックスの削除を維持するために使用します。 クエリによって基になる行ストアテーブルから行が削除されると、削除バッファーは列ストアから削除を追跡します。 削除された行の数が1048576を超えると、バックグラウンドのタプルムーバースレッドまたは明示的な再編成コマンドによって、delete ビットマップに再びマージされます。 特定の時点で、削除ビットマップと削除バッファーの和集合は、削除されたすべての行を表します。

COLUMN_STORE_MAPPING_INDEX-クラスター化列ストアインデックスにセカンダリ非クラスター化インデックスがある場合にのみ使用されます。 これにより、非クラスター化インデックスキーが列ストアの正しい行グループと行 ID にマップされます。 別の行グループに移動する行のキーのみを格納します。このエラーは、デルタ行グループが列ストアに圧縮され、マージ操作によって2つの異なる行グループの行がマージされた場合に発生します。
Row_group_id int デルタストアの行グループの ID。 各テーブルパーティションには、0個以上のデルタストア行グループを含めることができます。
hobt_id bigint 内部行セットオブジェクト (HoBT) の ID。 これは、内部行セットの物理的特性に関する詳細情報を取得するために、他の Dmv と結合するのに適したキーです。
rows bigint このパーティション内の行の概数です。
data_compression tinyint 行セットの圧縮の状態。

0 = NONE

1 = 行

2 = ページ
data_compression_desc nvarchar(60) 各パーティションの圧縮の状態。 行ストア テーブルに指定できる値は、NONE、ROW、および PAGE です。 列ストアテーブルに指定できる値は、列ストアと 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 システム カタログに対するクエリに関してよく寄せられる質問