Oharra
Orrialde honetara sartzeak baimena behar du. Saioa hasteko edo direktorioak aldatzen saia zaitezke.
Orrialde honetara sartzeak baimena behar du. Direktorioak aldatzen saia zaitezke.
Se aplica a:SQL Server
Azure SQL Database
Instancia
administrada de Azure SQLBase de datos SQL en Microsoft Fabric
Proporciona información de índice de almacén de columnas por segmento.
Para los índices de almacén de columnas agrupados, 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. Use sys.column_store_row_groups para determinar qué grupos de filas tienen un alto porcentaje de filas eliminadas y se deben volver a generar.
| Nombre de la columna | Tipo de datos | Descripción |
|---|---|---|
object_id |
int | Identificador de la tabla en la que se define este índice. |
index_id |
int | Identificador del índice de almacén de columnas. |
partition_number |
int | Partición de tabla que contiene el grupo de filas identificado por row_group_id. Use partition_number para unirse sys.partitionsa . |
row_group_id |
int | El número de grupo de filas asociado con este grupo de filas. Este número es único dentro de la partición. -1 = cola de una tabla optimizada para memoria. |
delta_store_hobt_id |
bigint | para hobt_id un OPEN grupo de filas en el almacén delta.NULL si el grupo de filas no está en el almacén delta. NULL para el final de una tabla optimizada para memoria. |
state |
tinyint | Número que describe el estado del grupo de filas. 0 = INVISIBLE1 = OPEN2 = CLOSED3 = COMPRESSED4 = TOMBSTONE |
state_description |
nvarchar(60) | Descripción del estado del grupo de filas:INVISIBLE - Un segmento comprimido oculto en el proceso de creación a partir de datos en un almacén delta. Las acciones de lectura usan el almacén delta hasta que se completa el segmento comprimido invisible. Después, se hará visible el nuevo segmento y se quitará el almacén delta de origen.OPEN - Un grupo de filas de lectura y escritura que acepta nuevas filas. Un grupo de filas abierto sigue en formato de almacén de filas y no está comprimido en formato de almacén de columnas.CLOSED - Un grupo de filas rellenado, pero aún no comprimido por el proceso de mover de tupla.COMPRESSED - Un grupo de filas que se rellena y comprime. |
total_rows |
bigint | Total de filas almacenadas físicamente en el grupo de filas. Es posible que todavía se almacenen las filas eliminadas. El número máximo de filas de un grupo de filas es de 1048 576. |
deleted_rows |
bigint | Total de filas del grupo de filas que se marcan como eliminadas, pero que permanecen almacenadas. Este valor siempre 0 es para los grupos de filas delta.En el caso de los índices de almacén de columnas no agrupados, este valor no incluye las filas eliminadas almacenadas en el búfer de eliminación. Para obtener más información y buscar el número de filas eliminadas en el búfer de eliminación, consulte sys.internal_partitions. |
size_in_bytes |
bigint | Tamaño en bytes de todos los datos de este grupo de filas (sin incluir metadatos ni diccionarios compartidos), tanto para grupos de filas de almacén delta como de almacén de columnas. |
Comentarios
Devuelve una fila para cada grupo de filas de almacén de columnas para cada partición de cada tabla que tiene un índice de almacén de columnas agrupado o no agrupado.
Use sys.column_store_row_groups para averiguar cuántas filas están en el grupo de filas y el tamaño del grupo de filas.
Cuando el número de filas eliminadas de un grupo de filas alcanza un alto porcentaje de las filas totales, la tabla pierde eficiencia. 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. Para volver a generar el índice de almacén de columnas, use la REBUILD cláusula de la ALTER INDEX instrucción .
El almacén de columnas actualizable inserta primero nuevos datos en un grupo de filas abierto, que se encuentra en formato de almacén de filas y, a veces, también se conoce como una tabla delta. Una vez que un grupo de filas abierto está lleno, su estado cambia a CLOSED. Un grupo de filas cerrado se comprime en formato de almacén de columnas por el mover de tupla y el estado cambia a 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. El mover de tupla también desasigna los grupos de filas en los que se elimina cada fila. Los grupos de filas desasignados se marcan como TOMBSTONE. Para ejecutar inmediatamente el mover de tupla, use la REORGANIZE cláusula de la ALTER INDEX instrucción .
Cuando un grupo de filas de almacén de columnas se rellena, se comprime y deja de aceptar nuevas filas. Al eliminar filas de un grupo comprimido, permanecen pero se marcan como eliminadas. Las actualizaciones de un grupo comprimido se implementan como una eliminación del grupo comprimido, y como una inserción en un grupo abierto.
Permisos
Devuelve información de una tabla si el usuario tiene VIEW DEFINITION permiso en la tabla.
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 ha recibido algún permiso. Para obtener más información, consulte Configuración de visibilidad de metadatos.
Ejemplos
En el ejemplo siguiente se combina la sys.column_store_row_groups vista y otras vistas del sistema para devolver información sobre los índices de almacén de columnas agrupados. La percent_full columna es una estimación de la eficacia del grupo de filas.
SELECT i.object_id,
OBJECT_SCHEMA_NAME(i.object_id) AS schema_name,
OBJECT_NAME(i.object_id) AS table_name,
i.name AS index_name,
i.type_desc AS index_type_desc,
rg.partition_number,
rg.row_group_id,
rg.state_description,
rg.total_rows,
rg.deleted_rows,
rg.size_in_bytes,
100 * (rg.total_rows - ISNULL(rg.deleted_rows, 0)) / total_rows AS percent_full
FROM sys.indexes AS i
INNER JOIN sys.column_store_row_groups AS rg
ON i.object_id = rg.object_id
AND i.index_id = rg.index_id
WHERE INDEXPROPERTY(i.object_id, i.name, 'IsClustered') = 1
ORDER BY schema_name, table_name, index_name, row_group_id;
Para obtener más información, consulte Comprobación de la fragmentación de un índice de almacén de columnas.