sys.column_store_segments (Transact-SQL)sys.column_store_segments (Transact-SQL)

適用対象:○SQL Server (2014 以降)XAzure SQL DatabaseXAzure SQL Data Warehouse XParallel Data Warehouse THIS TOPIC APPLIES TO:yesSQL Server (starting with 2014)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

列ストア インデックスで各列セグメントの 1 つの行を返します。Returns one row for each column segment in a columnstore index. 行グループごとに各列の 1 つの列セグメントがあります。There is one column segment per column per rowgroup. たとえば、10 行グループと 34 列を含むテーブルには、340 行が返されます。For example, a table with 10 rowgroups and 34 columns returns 340 rows.

列名Column name データ型Data type DescriptionDescription
partition_idpartition_id bigintbigint パーティション ID を示します。Indicates the partition ID. データベース内で一意です。Is unique within a database.
hobt_id でhobt_id bigintbigint この列ストア インデックスを保持するテーブルのヒープまたは B ツリー インデックス (hobt) の ID。ID of the heap or B-tree index (hobt) for the table that has this columnstore index.
column_idcolumn_id intint 列ストアの列の ID。ID of the columnstore column.
segment_idsegment_id intint 行グループの ID です。ID of the rowgroup. 旧バージョンと互換性のため、列名が呼び出す segment_id 行グループ ID です。 この場合でも引き続きFor backward compatibility, the column name continues to be called segment_id even though this is the rowgroup ID. 使用してセグメントを一意に識別できる<hobt_id で、partition_id、column_id >、< segment_id >。You can uniquely identify a segment using <hobt_id, partition_id, column_id>, <segment_id>.
versionversion intint 列セグメント形式のバージョン。Version of the column segment format.
encoding_typeencoding_type intint そのセグメントで使用するエンコードの種類です。Type of encoding used for that segment:

1 = VALUE_BASED - 非文字列/バイナリないディクショナリ (いくつか内部のバリエーションを 4 に非常に似ています)1 = VALUE_BASED - non-string/binary with no dictionary (very similar to 4 with some internal variations)

2 = VALUE_HASH_BASED - の一般的な値がディクショナリ内の文字列またはバイナリ列2 = VALUE_HASH_BASED - non-string/binary column with common values in dictionary

3 = STRING_HASH_BASED - の一般的な値がディクショナリ内の文字列またはバイナリ列3 = STRING_HASH_BASED - string/binary column with common values in dictionary

4 STORE_BY_VALUE_BASED - 非文字列/バイナリないディクショナリを =4 = STORE_BY_VALUE_BASED - non-string/binary with no dictionary

5 = STRING_STORE_BY_VALUE_BASED - 文字列/にあるバイナリ辞書が見つかりません5 = STRING_STORE_BY_VALUE_BASED - string/binary with no dictionary

すべてのエンコーディング利用可能な場合のエンコード ビット パッキングと実行の長さ。All encodings take advantage of bit-packing and run-length encoding when possible.
row_countrow_count intint 行グループ内の行の数。Number of rows in the row group.
has_nullshas_nulls intint 列セグメントに NULL 値がある場合は 1。1 if the column segment has null values.
base_idbase_id bigintbigint エンコードの種類 1 が使用されている場合は、id をベース値です。Base value id if encoding type 1 is being used. エンコードの種類 1 が、使用されていない場合、base_id は 1 に設定します。If encoding type 1 is not being used, base_id is set to 1.
絶対値magnitude floatfloat エンコードの種類 1 が使用されている場合は大きさ。Magnitude if encoding type 1 is being used. エンコードの種類 1 が、使用されていない場合は、絶対値が 1 に設定されます。If encoding type 1 is not being used, magnitude is set to 1.
primary_dictionary_idprimary_dictionary_id intint 値 0 は、グローバルの辞書を表します。A value of 0 represents the global dictionary. 値-1 は、この列用に作成されたグローバルの辞書がないことを示します。A value of -1 indicates that there is no global dictionary created for this column.
secondary_dictionary_idsecondary_dictionary_id intint 0 以外の値は、現在のセグメント (つまり、行グループ) のこの列のローカルのディクショナリを指します。A non-zero value points to the local dictionary for this column in the current segment (i.e. the rowgroup). 値-1 は、このセグメントのローカルのディクショナリがないことを示します。A value of -1 indicates that there is no local dictionary for this segment.
min_data_idmin_data_id bigintbigint 列セグメントの最小データ ID。Minimum data id in the column segment.
max_data_idmax_data_id bigintbigint 列セグメントの最大データ ID。Maximum data id in the column segment.
null_valuenull_value bigintbigint NULL を表すために使用される値。Value used to represent nulls.
on_disk_sizeon_disk_size bigintbigint セグメントのサイズ (バイト単位)。Size of segment in bytes.

解説Remarks

次のクエリは、列ストア インデックスのセグメントに関する情報を返します。The following query returns information about segments of a columnstore index.

SELECT i.name, p.object_id, p.index_id, i.type_desc,   
    COUNT(*) AS number_of_segments  
FROM sys.column_store_segments AS s   
INNER JOIN sys.partitions AS p   
    ON s.hobt_id = p.hobt_id   
INNER JOIN sys.indexes AS i   
    ON p.object_id = i.object_id  
WHERE i.type = 5 OR i.type = 6  
GROUP BY i.name, p.object_id, p.index_id, i.type_desc ;  
GO  

PermissionsPermissions

すべての列が少なくとも必要VIEW DEFINITIONテーブルに対する権限。All columns require at least VIEW DEFINITION permission on the table. ユーザーがあるない限り列は null を返します選択権限: has_nulls、base_id、magnitude、min_data_id、max_data_id、および null_value します。The following columns return null unless the user also has SELECT permission: has_nulls, base_id, magnitude, min_data_id, max_data_id, and null_value.

カタログ ビューでのメタデータの表示が、ユーザーが所有しているかそのユーザーが権限を許可されている、セキュリティ保護可能なメタデータに制限されます。The visibility of the metadata in catalog views is limited to securables that a user either owns or on which the user has been granted some permission. 詳細については、「 Metadata Visibility Configuration」を参照してください。 For more information, see Metadata Visibility Configuration.

参照See Also

オブジェクト カタログ ビュー (です。TRANSACT-SQL と #41 です。 Object Catalog Views (Transact-SQL)
カタログ ビュー (Transact-SQL) Catalog Views (Transact-SQL)
SQL Server のシステム カタログよく寄せられる質問のクエリを実行します。 Querying the SQL Server System Catalog FAQ
sys.columns (Transact-SQL) sys.columns (Transact-SQL)
sys.all_columns (です。TRANSACT-SQL と #41 です。 sys.all_columns (Transact-SQL)
sys.computed_columns (です。TRANSACT-SQL と #41 です。 sys.computed_columns (Transact-SQL)
列ストア インデックス ガイド Columnstore Indexes Guide
sys.column_store_dictionaries (Transact-SQL)sys.column_store_dictionaries (Transact-SQL)