Share via


sys.pdw_nodes_column_store_segments (Transact-SQL)

Se aplica a:Azure Synapse AnalyticsAnalytics Platform System (PDW)

Contiene una fila para cada columna de un índice de almacén de columnas.

Nombre de la columna Tipo de datos Descripción
partition_id bigint Indica el identificador de partición. Es único en una base de datos.
hobt_id bigint Identificador del montón o el índice de árbol b (hobt) para la tabla que contiene este índice de almacén de columnas.
column_id int Identificador de la columna de almacén de columnas.
segment_id int Identificador del segmento de columna. Por motivos de compatibilidad con versiones anteriores, se sigue llamando al nombre de columna segment_id aunque se trata del identificador del grupo de filas. Puede identificar de forma única un segmento mediante <hobt_id, partition_id, column_id>, <segment_id>.
version int Versión del formato de segmento de columna.
encoding_type int Tipo de codificación que se usa para ese segmento:

1 = VALUE_BASED - no string/binary sin diccionario (similar a 4 con algunas variaciones internas)

2 = VALUE_HASH_BASED: columna no cadena/binaria con valores comunes en el diccionario

3 = STRING_HASH_BASED: cadena/columna binaria con valores comunes en el diccionario

4 = STORE_BY_VALUE_BASED : no cadena/binario sin diccionario

5 = STRING_STORE_BY_VALUE_BASED - cadena/binario sin diccionario

Todas las codificaciones aprovechan el empaquetado de bits y la codificación de longitud de ejecución siempre que sea posible.
row_count int Número de filas del grupo de filas.
has_nulls int 1 si el segmento de la columna tiene valores NULL.
base_id bigint Id. de valor base si se usa el tipo de codificación 1. Si no se usa el tipo de codificación 1, base_id se establece en 1.
Magnitud float Magnitud si se usa el tipo de codificación 1. Si no se usa el tipo de codificación 1, la magnitud se establece en 1.
primary__dictionary_id int Id. del diccionario principal. Un valor distinto de cero apunta al diccionario local de esta columna en el segmento actual (es decir, el grupo de filas). Un valor de -1 indica que no hay ningún diccionario local para este segmento.
secondary_dictionary_id int Identificador del diccionario secundario. Un valor distinto de cero apunta al diccionario local de esta columna en el segmento actual (es decir, el grupo de filas). Un valor de -1 indica que no hay ningún diccionario local para este segmento.
min_data_id bigint Identificador de datos mínimo en el segmento de columna.
max_data_id bigint Identificador máximo de datos en el segmento de columna.
null_value bigint Valor usado para representar valores NULL.
on_disk_size bigint Tamaño del segmento en bytes.
pdw_node_id int Identificador único de un nodo de Azure Synapse Analytics.

Ejemplos: Azure Synapse Analytics y Sistema de la plataforma de análisis (PDW)

Combine sys.pdw_nodes_column_store_segments con otras tablas del sistema para determinar el número de segmentos de almacén de columnas por tabla 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 ;

Permisos

Requiere el permiso VIEW SERVER STATE.

Consulte también

Vistas de catálogo de Azure Synapse Analytics y Almacenamiento de datos paralelos
CREATE COLUMNSTORE INDEX (Transact-SQL)
sys.pdw_nodes_column_store_row_groups (Transact-SQL)
sys.pdw_nodes_column_store_dictionaries (Transact-SQL)