Condividi tramite


sys.pdw_nodes_column_store_segments (Transact-SQL)

Si applica a: Azure Synapse Analytics Piattaforma di strumenti analitici (PDW)

Contiene una riga per ogni colonna in un indice columnstore.

Nome colonna Tipo di dati Descrizione
partition_id bigint Indica l'ID della partizione. Valore univoco all'interno di un database.
hobt_id bigint ID dell'heap o dell'indice ad albero B (HoBT) per la tabella a cui appartiene l'indice columnstore.
column_id int ID della colonna columnstore.
segment_id int ID del segmento della colonna. Per garantire la compatibilità con le versioni precedenti, il nome della colonna continua a essere chiamato segment_id anche se si tratta dell'ID del rowgroup. È possibile identificare in modo univoco un segmento usando <hobt_id, partition_id, column_id> segment_id<>.
version int Versione del formato del segmento di colonna.
encoding_type int Tipo di codifica usata per il segmento:

1 = VALUE_BASED - non stringa/binario senza dizionario (simile a 4 con alcune varianti interne)

2 = VALUE_HASH_BASED - colonna non stringa/binaria con valori comuni nel dizionario

3 = STRING_HASH_BASED - colonna stringa/binaria con valori comuni nel dizionario

4 = STORE_BY_VALUE_BASED - non stringa/binaria senza dizionario

5 = STRING_STORE_BY_VALUE_BASED - stringa/binaria senza dizionario

Tutte le codifiche sfruttano la codifica bit-packaging e run-length, quando possibile.
row_count int Numero di righe nel gruppo di righe.
has_nulls int 1 se il segmento di colonna contiene valori Null.
base_id bigint ID valore di base se viene usato il tipo di codifica 1. Se il tipo di codifica 1 non viene usato, base_id è impostato su 1.
grandezza float Grandezza se viene usato il tipo di codifica 1. Se il tipo di codifica 1 non viene usato, la grandezza è impostata su 1.
primary__dictionary_id int ID del dizionario primario. Un valore diverso da zero punta al dizionario locale per questa colonna nel segmento corrente(ad esempio il rowgroup). Il valore -1 indica che non esiste un dizionario locale per questo segmento.
secondary_dictionary_id int ID del dizionario secondario. Un valore diverso da zero punta al dizionario locale per questa colonna nel segmento corrente(ad esempio il rowgroup). Il valore -1 indica che non esiste un dizionario locale per questo segmento.
min_data_id bigint ID dati minimo nel segmento di colonna.
max_data_id bigint ID dati massimo nel segmento di colonna.
null_value bigint Valore utilizzato per rappresentare i valori Null.
on_disk_size bigint Dimensioni del segmento in byte.
pdw_node_id int Identificatore univoco di un nodo di Azure Synapse Analytics.

Esempi: Azure Synapse Analytics e Piattaforma di strumenti analitici (PDW)

Unire sys.pdw_nodes_column_store_segments con altre tabelle di sistema per determinare il numero di segmenti columnstore per tabella logica.

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 ;

Autorizzazioni

È richiesta l'autorizzazione VIEW SERVER STATE.

Vedi anche

Viste del catalogo di Azure Synapse Analytics e 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)