sys.column_store_segments (Transact-SQL)sys.column_store_segments (Transact-SQL)

SE APLICA A: síSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Devuelve una fila por cada segmento de columna de un índice de almacén de columnas.Returns one row for each column segment in a columnstore index. Hay un segmento de columna por columna por cada filas.There is one column segment per column per rowgroup. Por ejemplo, una tabla con 10 filas y 34 columnas devuelve 340 filas.For example, a table with 10 rowgroups and 34 columns returns 340 rows.

Nombre de la columnaColumn name Tipo de datosData type DescripciónDescription
partition_idpartition_id BIGINTbigint Indica el identificador de partición.Indicates the partition ID. Es único en una base de datos.Is unique within a database.
hobt_idhobt_id BIGINTbigint Identificador del montón o el índice de árbol b (hobt) para la tabla que contiene este índice de almacén de columnas.ID of the heap or B-tree index (hobt) for the table that has this columnstore index.
column_idcolumn_id intint Identificador de la columna de almacén de columnas.ID of the columnstore column.
segment_idsegment_id intint IDENTIFICADOR de filas.ID of the rowgroup. Por compatibilidad con versiones anteriores, el nombre de columna sigue siendo llamado segment_id aunque se trata del identificador de filas.For backward compatibility, the column name continues to be called segment_id even though this is the rowgroup ID. Puede identificar de forma única un segmento mediante <hobt_id, partition_id, column_id> <segment_id>.You can uniquely identify a segment using <hobt_id, partition_id, column_id>, <segment_id>.
Versiónversion intint Versión del formato de segmento de columna.Version of the column segment format.
encoding_typeencoding_type intint Tipo de codificación que se usa para ese segmento:Type of encoding used for that segment:

1 = VALUE_BASED-no cadena/binaria sin diccionario (muy similar a 4 con algunas variaciones internas)1 = VALUE_BASED - non-string/binary with no dictionary (very similar to 4 with some internal variations)

2 = VALUE_HASH_BASED una columna no cadena/binaria con valores comunes en el Diccionario2 = VALUE_HASH_BASED - non-string/binary column with common values in dictionary

3 = STRING_HASH_BASED-cadena/columna binaria con valores comunes en el Diccionario3 = STRING_HASH_BASED - string/binary column with common values in dictionary

4 = STORE_BY_VALUE_BASED-no cadena/binaria sin Diccionario4 = STORE_BY_VALUE_BASED - non-string/binary with no dictionary

5 = STRING_STORE_BY_VALUE_BASED-cadena/binario sin Diccionario5 = STRING_STORE_BY_VALUE_BASED - string/binary with no dictionary

Todas las codificaciones aprovechan el empaquetado de bits y la codificación de longitud de ejecución cuando sea posible.All encodings take advantage of bit-packing and run-length encoding when possible.
row_countrow_count intint Número de filas del grupo de filas.Number of rows in the row group.
has_nullshas_nulls intint 1 si el segmento de la columna tiene valores NULL.1 if the column segment has null values.
base_idbase_id BIGINTbigint Identificador del valor base si se está utilizando el tipo de codificación 1.Base value id if encoding type 1 is being used. Si no se usa el tipo de codificación 1, base_id se establece en-1.If encoding type 1 is not being used, base_id is set to -1.
magnitudemagnitude floatfloat Magnitud si se usa el tipo de codificación 1.Magnitude if encoding type 1 is being used. Si no se usa el tipo de codificación 1, Magnitude se establece en-1.If encoding type 1 is not being used, magnitude is set to -1.
primary_dictionary_idprimary_dictionary_id intint Un valor de 0 representa el Diccionario global.A value of 0 represents the global dictionary. Un valor de-1 indica que no hay ningún diccionario global creado para esta columna.A value of -1 indicates that there is no global dictionary created for this column.
secondary_dictionary_idsecondary_dictionary_id intint Un valor distinto de cero apunta al diccionario local para esta columna en el segmento actual (es decir, filas).A non-zero value points to the local dictionary for this column in the current segment (i.e. the rowgroup). Un valor de-1 indica que no hay ningún diccionario local para este segmento.A value of -1 indicates that there is no local dictionary for this segment.
min_data_idmin_data_id BIGINTbigint Identificador de datos mínimo en el segmento de columna.Minimum data id in the column segment.
max_data_idmax_data_id BIGINTbigint Identificador de datos máximo en el segmento de columna.Maximum data id in the column segment.
null_valuenull_value BIGINTbigint Valor usado para representar valores NULL.Value used to represent nulls.
on_disk_sizeon_disk_size BIGINTbigint Tamaño del segmento en bytes.Size of segment in bytes.

ObservacionesRemarks

La consulta siguiente devuelve información acerca de los segmentos de un índice de almacén de columnas.The following query returns information about segments of a columnstore index.

SELECT i.name, p.object_id, p.index_id, i.type_desc,   
    COUNT(*) AS number_of_segments  
FROM sys.column_store_segments AS s   
INNER JOIN sys.partitions AS p   
    ON s.hobt_id = p.hobt_id   
INNER JOIN sys.indexes AS i   
    ON p.object_id = i.object_id  
WHERE i.type = 5 OR i.type = 6  
GROUP BY i.name, p.object_id, p.index_id, i.type_desc ;  
GO  

PermisosPermissions

Todas las columnas necesitan al menos el permiso View definition en la tabla.All columns require at least VIEW DEFINITION permission on the table. Las columnas siguientes devuelven null a menos que el usuario también tenga el permiso Select : has_nulls, base_id, Magnitude, min_data_id, max_data_id y null_value.The following columns return null unless the user also has SELECT permission: has_nulls, base_id, magnitude, min_data_id, max_data_id, and null_value.

La visibilidad de los metadatos en las vistas de catálogo se limita a los elementos protegibles y que son propiedad de un usuario o sobre los que el usuario tiene algún permiso.The visibility of the metadata in catalog views is limited to securables that a user either owns or on which the user has been granted some permission. Para obtener más información, consulte Metadata Visibility Configuration.For more information, see Metadata Visibility Configuration.

Consulte tambiénSee Also

Vistas de catálogo de objetos (Transact-SQL) Object Catalog Views (Transact-SQL)
Vistas de catálogo (Transact-SQL) Catalog Views (Transact-SQL)
Preguntas más frecuentes sobre el catálogo del sistema de SQL Server Querying the SQL Server System Catalog FAQ
Sys. Columns (Transact-SQL) sys.columns (Transact-SQL)
Sys. all_columns (Transact-SQL) sys.all_columns (Transact-SQL)
Sys. computed_columns (Transact-SQL) sys.computed_columns (Transact-SQL)
Guía de índices de almacén de columnas Columnstore Indexes Guide
Sys. column_store_dictionaries (Transact-SQL)sys.column_store_dictionaries (Transact-SQL)