sys.pdw_nodes_column_store_segments (Transact-SQL)

Gilt für:Azure Synapse AnalyticsAnalytics Platform System (PDW)

Enthält eine Zeile für jede Spalte in einem columnstore-Index.

Spaltenname Datentyp BESCHREIBUNG
partition_id bigint Gibt die Partitions-ID an. Ist innerhalb einer Datenbank eindeutig.
hobt_id bigint ID des Heaps oder B-Struktur-Indexes (hobt) für die Tabelle, die diesen columnstore-Index aufweist.
column_id int ID der columnstore-Spalte.
segment_id int Die ID des Spaltensegments. Aus Gründen der Abwärtskompatibilität wird der Spaltenname weiterhin segment_id aufgerufen, obwohl dies die Zeilengruppen-ID ist. Sie können ein Segment mithilfe von <hobt_id, partition_id, column_id>< segment_id> eindeutig identifizieren.
version int Die Version des Spaltensegmentformats.
encoding_type int Für dieses Segment verwendete Codierungstyp:

1 = VALUE_BASED - Nicht-Zeichenfolge/Binär ohne Wörterbuch (ähnlich wie 4 mit einigen internen Variationen)

2 = VALUE_HASH_BASED - Nicht-Zeichenfolgen-/Binärspalte mit allgemeinen Werten im Wörterbuch

3 = STRING_HASH_BASED : Zeichenfolgen-/Binärspalte mit allgemeinen Werten im Wörterbuch

4 = STORE_BY_VALUE_BASED – Nicht-Zeichenfolge/Binärdatei ohne Wörterbuch

5 = STRING_STORE_BY_VALUE_BASED – Zeichenfolge/Binärdatei ohne Wörterbuch

Alle Codierungen nutzen nach Möglichkeit die Bitpackung und die Laufzeitcodierung.
row_count int Die Anzahl der Zeilen in der Zeilengruppe.
has_nulls int 1, wenn das Spaltensegment NULL-Werte enthält.
base_id bigint Basiswert-ID, wenn der Codierungstyp 1 verwendet wird. Wenn der Codierungstyp 1 nicht verwendet wird, wird base_id auf 1 festgelegt.
Größe float Größe, wenn der Codierungstyp 1 verwendet wird. Wenn der Codierungstyp 1 nicht verwendet wird, wird die Größe auf 1 festgelegt.
primary__dictionary_id int ID des primären Wörterbuchs. Ein Wert ungleich 0 verweist auf das lokale Wörterbuch für diese Spalte im aktuellen Segment (d. h. die Zeilengruppe). Der Wert -1 gibt an, dass für dieses Segment kein lokales Wörterbuch vorhanden ist.
secondary_dictionary_id int ID des sekundären Wörterbuchs. Ein Wert ungleich 0 verweist auf das lokale Wörterbuch für diese Spalte im aktuellen Segment (d. h. die Zeilengruppe). Der Wert -1 gibt an, dass für dieses Segment kein lokales Wörterbuch vorhanden ist.
min_data_id bigint Minimale Daten-ID im Spaltensegment.
max_data_id bigint Maximale Daten-ID im Spaltensegment.
null_value bigint Ein Wert, der zum Darstellen von NULL-Werten verwendet wird.
on_disk_size bigint Die Größe des Segments in Byte.
pdw_node_id int Eindeutiger Bezeichner eines Azure Synapse Analytics-Knotens.

Beispiele: Azure Synapse Analytics und Analytics-Plattformsystem (PDW)

Verknüpfen Sie sys.pdw_nodes_column_store_segments mit anderen Systemtabellen, um die Anzahl der Columnstore-Segmente pro logischer Tabelle zu bestimmen.

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 ;

Berechtigungen

Erfordert die VIEW SERVER STATE-Berechtigung.

Weitere Informationen

Katalogsichten von Azure Synapse Analytics und Parallel Data Warehouse Catalog
CREATE COLUMNSTORE INDEX (Transact-SQL)
sys.pdw_nodes_column_store_row_groups (Transact-SQL)
sys.pdw_nodes_column_store_dictionaries (Transact-SQL)