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)