Compartilhar via


sys.pdw_nodes_column_store_segments (Transact-SQL)

Aplica-se a: Azure Synapse Analytics Analytics Platform System (PDW)

Contém uma linha para cada coluna em um índice columnstore.

Nome da coluna Tipo de dados Descrição
partition_id bigint Indica a ID da partição. É exclusivo em um banco de dados.
hobt_id bigint A ID do heap ou o índice de árvore B (hobt) para a tabela que tem seu índice columnstore.
column_id int ID da coluna columnstore.
segment_id int ID do segmento de coluna. Para compatibilidade com versões anteriores, o nome da coluna continua a ser chamado segment_id mesmo que essa seja a ID do rowgroup. Você pode identificar exclusivamente um segmento usando <hobt_id, partition_id, column_id>< segment_id>.
version int Versão de formato do segmento de coluna.
encoding_type int Tipo de codificação usado para esse segmento:

1 = VALUE_BASED - não string/binário sem dicionário (semelhante a 4 com algumas variações internas)

2 = VALUE_HASH_BASED - coluna não string/binária com valores comuns no dicionário

3 = STRING_HASH_BASED - string/coluna binária com valores comuns no dicionário

4 = STORE_BY_VALUE_BASED - não string/binário sem dicionário

5 = STRING_STORE_BY_VALUE_BASED - string/binário sem dicionário

Todas as codificações aproveitam o empacotamento de bits e a codificação de comprimento de execução quando possível.
row_count int Número de linhas no grupo de linhas.
has_nulls int 1 se o segmento de coluna tiver valores nulos.
base_id bigint ID do valor base se o tipo de codificação 1 estiver sendo usado. Se a codificação do tipo 1 não estiver sendo usada, base_id será definida como 1.
magnitude float Magnitude se a codificação do tipo 1 estiver sendo usada. Se a codificação do tipo 1 não estiver sendo usada, a magnitude será definida como 1.
primary__dictionary_id int ID do dicionário primário. Um valor diferente de zero aponta para o dicionário local dessa coluna no segmento atual (ou seja, o rowgroup). Um valor de -1 indica que não há dicionário local para esse segmento.
secondary_dictionary_id int ID do dicionário secundário. Um valor diferente de zero aponta para o dicionário local dessa coluna no segmento atual (ou seja, o rowgroup). Um valor de -1 indica que não há dicionário local para esse segmento.
min_data_id bigint ID de dados mínimo no segmento de coluna.
max_data_id bigint ID de dados máxima no segmento de coluna.
null_value bigint Valor usado para representar nulos.
on_disk_size bigint Tamanho do segmento em bytes.
pdw_node_id int Identificador exclusivo de um nó do Azure Synapse Analytics.

Exemplos: Azure Synapse Analytics e PDW (Analytics Platform System)

Junte sys.pdw_nodes_column_store_segments com outras tabelas do sistema para determinar o número de segmentos columnstore por tabela lógica.

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 ;

Permissões

Requer a permissão VIEW SERVER STATE.

Confira também

Exibições de Catálogo do Azure Synapse Analytics e do 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)