sys.column_store_row_groups (Transact-SQL)sys.column_store_row_groups (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

Proporciona información del índice clúster de almacén de columnas una vez por segmento para ayudar al administrador a tomar decisiones de administración del sistema.Provides clustered columnstore index information on a per-segment basis to help the administrator make system management decisions. Sys.column_store_row_groups tiene una columna para el número total de filas almacenadas físicamente (incluidas las marcadas como eliminadas) y una columna para el número de filas marcadas como eliminadas.sys.column_store_row_groups has a column for the total number of rows physically stored (including those marked as deleted) and a column for the number of rows marked as deleted. Use sys.column_store_row_groups para determinar qué fila grupos tienen un alto porcentaje de filas eliminadas y deben volver a generar.Use sys.column_store_row_groups to determine which row groups have a high percentage of deleted rows and should be rebuilt.

Nombre de columnaColumn name Tipo de datosData type DescripciónDescription
object_idobject_id intint El identificador de la tabla en el que se define este índice.The id of the table on which this index is defined.
index_idindex_id intint Identificador del índice de la tabla que contiene este índice de almacén de columnas.ID of the index for the table that has this columnstore index.
partition_numberpartition_number intint Identificador de la partición de la tabla que contiene el grupo de filas row_group_id.ID of the table partition that holds row group row_group_id. Puede utilizar partition_number para unir esta DMV a sys.partitions.You can use partition_number to join this DMV to sys.partitions.
row_group_idrow_group_id intint El número de grupo de filas asociado con este grupo de filas.The row group number associated with this row group. Es único en la partición.This is unique within the partition.

-1 = el final de una tabla en memoria.-1 = tail of an in-memory table.
delta_store_hobt_iddelta_store_hobt_id bigintbigint El hobt_id para el grupo de filas abiertos en el almacén delta.The hobt_id for OPEN row group in the delta store.

Es NULL si el grupo de filas no está en el almacén delta.NULL if the row group is not in the delta store.

NULL para el final de una tabla en memoria.NULL for the tail of an in-memory table.
statestate tinyinttinyint Número de identificación asociado con el state_description.ID number associated with the state_description.

0 = INVISIBLE0 = INVISIBLE

1 = OPEN1 = OPEN

2 = CLOSED2 = CLOSED

3 = COMPRESSED3 = COMPRESSED

4 = OBJETO DE DESECHO4 = TOMBSTONE
state_descriptionstate_description nvarchar(60)nvarchar(60) Descripción del estado persistente del grupo de filas:Description of the persistent state of the row group:

INVISIBLE: un segmento comprimido oculto en el proceso de creación a partir de datos en un almacén delta.INVISIBLE -A hidden compressed segment in the process of being built from data in a delta store. Las acciones de lectura utilizarán el almacén delta hasta que se complete el segmento comprimido invisible.Read actions will use the delta store until the invisible compressed segment is completed. Después, se hará visible el nuevo segmento y se quitará el almacén delta de origen.Then the new segment is made visible, and the source delta store is removed.

Abra - un grupo de filas de lectura/escritura que acepta nuevos registros.OPEN - A read/write row group that is accepting new records. Un grupo de filas abierto está todavía en formato de almacén de filas y no se ha comprimido al formato de almacén de columnas.An open row group is still in rowstore format and has not been compressed to columnstore format.

CERRADO: un grupo de filas que se ha rellenado, pero el proceso de tupla motriz aún no se han comprimido.CLOSED - A row group that has been filled, but not yet compressed by the tuple mover process.

COMPRIMIR - un grupo de filas que se ha rellenado y comprimido.COMPRESSED - A row group that has filled and compressed.
total_rowstotal_rows bigintbigint Total de filas almacenadas físicamente en el grupo de filas.Total rows physically stored in the row group. Es posible que se hayan eliminado algunas, pero estas se siguen almacenando.Some may have been deleted but they are still stored. El número máximo de filas en un grupo de filas es 1.048.576 (hexadecimal FFFFF).The maximum number of rows in a row group is 1,048,576 (hexadecimal FFFFF).
deleted_rowsdeleted_rows bigintbigint Total de filas del grupo de filas marcadas como eliminadas.Total rows in the row group marked deleted. Esto es siempre 0 para los grupos de filas DELTA.This is always 0 for DELTA row groups.
size_in_bytessize_in_bytes bigintbigint Tamaño en bytes de todos los datos de este grupo de filas (sin incluir metadatos o diccionarios compartidos), tanto para los grupos de filas DELTA como COLUMNSTORE.Size in bytes of all the data in this row group (not including metadata or shared dictionaries), for both DELTA and COLUMNSTORE rowgroups.

ComentariosRemarks

Devuelve una fila para cada grupo de filas del almacén de columnas de cada tabla que tenga un índice clúster o no clúster de almacén de columnas.Returns one row for each columnstore row group for each table having a clustered or nonclustered columnstore index.

Use sys.column_store_row_groups para determinar el número de filas incluido en el grupo de filas y el tamaño del grupo de filas.Use sys.column_store_row_groups to determine the number of rows included in the row group and the size of the row group.

Cuando el número de filas eliminadas de un grupo de filas alcanza un alto porcentaje de las filas totales, la tabla pierde eficiencia.When the number of deleted rows in a row group grows to a large percentage of the total rows, the table becomes less efficient. Vuelva a generar el índice de almacén de columnas para reducir el tamaño de la tabla, reduciendo así la E/S de disco necesaria para leer la tabla.Rebuild the columnstore index to reduce the size of the table, reducing the disk I/O required to read the table. Para volver a generar el uso del índice de almacén de columnas el RECOMPILAR opción de la ALTER INDEX instrucción.To rebuild the columnstore index use the REBUILD option of the ALTER INDEX statement.

El almacén de columnas actualizable primero inserta nuevos datos en un abierto grupo de filas, que está en formato de almacén de filas y, a veces también se denomina tabla delta.The updateable columnstore first inserts new data into an OPEN rowgroup, which is in rowstore format, and is also sometimes referred to as a delta table. Una vez que un grupo de filas abierto está lleno, su estado cambia a cerrado.Once an open rowgroup is full, its state changes to CLOSED. La tupla motriz comprime un grupo de filas cerrado en formato de almacén de columnas y el estado cambia a comprimida.A closed rowgroup is compressed into columnstore format by the tuple mover and the state changes to COMPRESSED. La tupla motriz es un proceso en segundo plano que de forma periódica se despierta y comprueba si hay grupos de filas cerrados listos para comprimirse en un grupo de filas de almacén de columnas.The tuple mover is a background process that periodically wakes up and checks whether there are any closed rowgroups that are ready to compress into a columnstore rowgroup. La tupla motriz también cancela la asignación de los grupos de filas en los que se han borrado todas las filas.The tuple mover also deallocates any rowgroups in which every row has been deleted. Desasignadas los grupos de filas se marcan como DESECHO.Deallocated rowgroups are marked as TOMBSTONE. Para ejecutar la tupla motriz inmediatamente, use el REORGANIZAR opción de la ALTER INDEX instrucción.To run tuple mover immediately, use the REORGANIZE option of the ALTER INDEX statement.

Cuando se ha rellenado un grupo de filas de almacén de columnas, se comprime y ya no se aceptan filas nuevas.When a columnstore row group has filled, it is compressed, and stops accepting new rows. Cuando se eliminan filas de un grupo comprimido, siguen estando allí pero están marcadas como eliminadas.When rows are deleted from a compressed group, they remain but are marked as deleted. Las actualizaciones de un grupo comprimido se implementan como una eliminación del grupo comprimido, y como una inserción en un grupo abierto.Updates to a compressed group are implemented as a delete from the compressed group, and an insert to an open group.

PermisosPermissions

Devuelve información de una tabla si el usuario tiene VIEW DEFINITION permiso en la tabla.Returns information for a table if the user has VIEW DEFINITION permission on the table.

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.

EjemplosExamples

El ejemplo siguiente combina el sys.column_store_row_groups tabla con otras tablas del sistema para devolver información sobre tablas específicas.The following example joins the sys.column_store_row_groups table to other system tables to return information about specific tables. La columna PercentFull calculada es una estimación de la eficacia del grupo de filas.The calculated PercentFull column is an estimate of the efficiency of the row group. Para buscar información en un única tabla, quite el comentario guiones delante de la donde cláusula y proporcione un nombre de tabla.To find information on a single table remove the comment hyphens in front of the WHERE clause and provide a table name.

SELECT i.object_id, object_name(i.object_id) AS TableName,   
i.name AS IndexName, i.index_id, i.type_desc,   
CSRowGroups.*,   
100*(total_rows - ISNULL(deleted_rows,0))/total_rows AS PercentFull    
FROM sys.indexes AS i  
JOIN sys.column_store_row_groups AS CSRowGroups  
    ON i.object_id = CSRowGroups.object_id  
AND i.index_id = CSRowGroups.index_id   
--WHERE object_name(i.object_id) = '<table_name>'   
ORDER BY object_name(i.object_id), i.name, row_group_id;  

Vea tambiénSee Also

Object Catalog Views (Transact-SQL) (Vistas de catálogo de objetos [Transact-SQL])Object Catalog Views (Transact-SQL)
Vistas de catálogo (Transact-SQL) Catalog Views (Transact-SQL)
Consultar el catálogo del sistema SQL Server preguntas más frecuentes 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)
sys.column_store_segments (Transact-SQL)sys.column_store_segments (Transact-SQL)