sys.pdw_nodes_column_store_segments (Transact-SQL)

適用対象:Azure Synapse AnalyticsAnalytics Platform System (PDW)

列ストア インデックス内の各列の行を格納します。

列名 データ型 説明
partition_id bigint パーティション ID を示します。 データベース内で一意です。
hobt_id bigint この列ストア インデックスを持つテーブルのヒープまたは B ツリー インデックス (hobt) の ID。
column_id int 列ストア列の ID。
segment_id int 列セグメントの ID。 下位互換性のために、列名は引き続きsegment_id呼び出されます。ただし、これは行グループ ID です。 hobt_id、partition_id、column_id、>segment_idを使用して<セグメント<>を一意に識別できます。
version int 列セグメント形式のバージョン。
encoding_type int そのセグメントに使用されるエンコードの種類:

1 = VALUE_BASED - 辞書のない非文字列/バイナリ (一部の内部バリエーションを含む 4 に似ています)

2 = VALUE_HASH_BASED - ディクショナリ内の共通値を持つ非文字列/バイナリ列

3 = STRING_HASH_BASED - ディクショナリ内の共通値を持つ文字列/バイナリ列

4 = STORE_BY_VALUE_BASED - 辞書のない非文字列/バイナリ

5 = STRING_STORE_BY_VALUE_BASED - 辞書のない文字列/バイナリ

可能であれば、すべてのエンコードでビット パッキングと実行長エンコードを利用します。
row_count int 行グループ内の行数。
has_nulls int 列セグメントに null 値がある場合は 1。
base_id bigint エンコード・タイプ 1 が使用されている場合の基本値 ID。 エンコードの種類 1 が使用されていない場合、base_idは 1 に設定されます。
大きさ float エンコードの種類 1 が使用されている場合の大きさ。 エンコードの種類 1 が使用されていない場合、大きさは 1 に設定されます。
primary__dictionary_id int プライマリ ディクショナリの ID。 0 以外の値は、現在のセグメント (つまり行グループ) のこの列のローカル ディクショナリを指します。 値 -1 は、このセグメントのローカル ディクショナリがないことを示します。
secondary_dictionary_id int セカンダリ ディクショナリの ID。 0 以外の値は、現在のセグメント (つまり行グループ) のこの列のローカル ディクショナリを指します。 値 -1 は、このセグメントのローカル ディクショナリがないことを示します。
min_data_id bigint 列セグメントの最小データ ID。
max_data_id bigint 列セグメント内の最大データ ID。
null_value bigint NULL を表すために使用される値。
on_disk_size bigint セグメントのサイズ (バイト単位)。
pdw_node_id int Azure Synapse Analytics ノードの一意識別子。

例: Azure Synapse Analytics、Analytics Platform System (PDW)

sys.pdw_nodes_column_store_segments他のシステム テーブルと結合して、論理テーブルあたりの列ストア セグメントの数を決定します。

SELECT  sm.name           as schema_nm
,       tb.name           as table_nm
,       nc.name           as col_nm
,       nc.column_id
,       COUNT(*)          as segment_count
FROM    sys.[schemas] sm
JOIN    sys.[tables] tb                   ON  sm.[schema_id]          = tb.[schema_id]
JOIN    sys.[pdw_table_mappings] mp       ON  tb.[object_id]          = mp.[object_id]
JOIN    sys.[pdw_nodes_tables] nt         ON  nt.[name]               = mp.[physical_name]
JOIN    sys.[pdw_nodes_partitions] np     ON  np.[object_id]          = nt.[object_id]
                                          AND np.[pdw_node_id]        = nt.[pdw_node_id]
                                          AND np.[distribution_id]    = nt.[distribution_id]
JOIN    sys.[pdw_nodes_columns] nc        ON  np.[object_id]          = nc.[object_id]
                                          AND np.[pdw_node_id]        = nc.[pdw_node_id]
                                          AND np.[distribution_id]    = nc.[distribution_id]
JOIN    sys.[pdw_nodes_column_store_segments] rg  ON  rg.[partition_id]         = np.[partition_id]
                                                      AND rg.[pdw_node_id]      = np.[pdw_node_id]
                                                      AND rg.[distribution_id]  = np.[distribution_id]
                                                      AND rg.[column_id]        = nc.[column_id]
GROUP BY    sm.name
,           tb.name
,           nc.name
,           nc.column_id  
ORDER BY    table_nm
,           nc.column_id
,           sm.name ;

アクセス許可

VIEW SERVER STATE アクセス許可が必要です。

参照

Azure Synapse Analytics と Parallel Data Warehouse のカタログ ビュー
CREATE COLUMNSTORE INDEX (Transact-SQL)
sys.pdw_nodes_column_store_row_groups (Transact-SQL)
sys.pdw_nodes_column_store_dictionaries (Transact-SQL)