Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
Fornece informação de índice de colunas por segmento.
Para índices de coluna agrupados, sys.column_store_row_groups tem uma coluna para o número total de linhas fisicamente armazenadas (incluindo aquelas marcadas como eliminadas) e uma coluna para o número de linhas marcadas como eliminadas. Use sys.column_store_row_groups para determinar quais os grupos de linhas que têm uma alta percentagem de linhas eliminadas e devem ser reconstruídas.
| Nome da coluna | Tipo de dados | Description |
|---|---|---|
object_id |
int | O ID da tabela onde este índice está definido. |
index_id |
int | O ID do índice da coluna de armazenamento. |
partition_number |
int | A partição da tabela que contém o grupo de linhas identificado por row_group_id. Use partition_number para entrar sys.partitionsem . |
row_group_id |
int | O número do grupo de linhas associado a este grupo de linhas. Este número é único dentro da partição. -1 = cauda de uma tabela otimizada para memória. |
delta_store_hobt_id |
bigint | O hobt_id para um OPEN grupo de filas na loja Delta.NULL se o grupo de linhas não estiver na loja delta. NULL para a cauda de uma tabela otimizada para memória. |
state |
tinyint | Um número que descreve o estado do grupo de linhas. 0 = INVISIBLE1 = OPEN2 = CLOSED3 = COMPRESSED4 = TOMBSTONE |
state_description |
nvarchar(60) | Descrição do estado do grupo de linhas:INVISIBLE - Um segmento comprimido oculto em processo de construção a partir de dados numa loja delta. As ações de leitura utilizam o armazenamento delta até que o segmento invisível comprimido esteja concluído. Depois, o novo segmento é tornado visível e o armazenamento delta de origem é removido.OPEN - Um grupo de linhas de leitura/escrita que aceita novas linhas. Um grupo de linhas abertas continua em formato de loja de linhas e não está comprimido para o formato de loja de colunas.CLOSED - Um grupo de linhas que está preenchido, mas ainda não comprimido pelo processo de movimentação de tuplas.COMPRESSED - Um grupo de linhas que é preenchido e comprimido. |
total_rows |
bigint | O total das linhas está fisicamente armazenado no grupo de linhas. As linhas eliminadas podem ainda estar armazenadas. O número máximo de carreiras num grupo de carreiras é 1.048.576. |
deleted_rows |
bigint | Total de linhas no grupo de linhas que estão marcadas como eliminadas mas permanecem armazenadas. Este valor é sempre 0 para grupos de linhas delta.Para índices columnstore não clusterizados, esse valor não inclui linhas excluídas armazenadas no buffer de exclusão. Para obter mais informações e para localizar o número de linhas excluídas no buffer de exclusão, consulte sys.internal_partitions. |
size_in_bytes |
bigint | Tamanho em bytes de todos os dados deste grupo de linhas (excluindo metadados ou dicionários partilhados), tanto para os grupos de linhas de armazenamento delta como de armazenamento de colunas. |
Observações
Devolve uma linha para cada grupo de linhas de armazenamento de colunas para cada partição de cada tabela que tenha um índice de armazenamento de colunas agrupado ou não agrupado.
Uso sys.column_store_row_groups para descobrir quantas linhas há no grupo de filas e o tamanho desse grupo.
Quando o número de linhas eliminadas num grupo de linhas cresce para uma grande percentagem do total de linhas, a tabela torna-se menos eficiente. Reconstrua o índice columnstore para reduzir o tamanho da tabela, diminuindo a I/O do disco necessária para ler a tabela. Para reconstruir o índice columnstore, use a REBUILD cláusula da ALTER INDEX instrução.
A loja de colunas atualizável insere primeiro novos dados num grupo de linhas aberto, que está em formato de loja de linhas, e é também por vezes referido como tabela delta. Uma vez que um grupo de remates aberto está cheio, o seu estado muda para CLOSED. Um grupo de linhas fechado é comprimido no formato de stock-coluna pelo mover de tuplas e o estado muda para COMPRESSED. O tuple mover é um processo em segundo plano que periodicamente desperta e verifica se existem grupos de linhas fechados prontos para comprimir num grupo de linhas de column store. O mover de tuplas também desaloca quaisquer grupos de linhas em que todas as linhas sejam eliminadas. Os grupos de linhas desalocados são marcados como TOMBSTONE. Para executar imediatamente o tuple mover, use a REORGANIZE cláusula da ALTER INDEX declaração.
Quando um grupo de linhas de colonstore preenche, é comprimido e deixa de aceitar novas linhas. Quando apagas linhas de um grupo comprimido, elas permanecem mas são marcadas como eliminadas. As atualizações de um grupo comprimido são implementadas como uma eliminação do grupo comprimido e uma inserção para um grupo aberto.
Permissions
Devolve informação para uma tabela se o utilizador tiver VIEW DEFINITION permissão sobre a tabela.
A visibilidade dos metadados nas visualizações de catálogo é limitada aos itens de segurança que um utilizador possui ou nos quais o utilizador recebeu alguma permissão. Para obter mais informações, consulte Configuração de visibilidade de metadados.
Examples
O exemplo seguinte junta a sys.column_store_row_groups vista e outras vistas do sistema para devolver informações sobre índices clustered columnstore. A percent_full coluna é uma estimativa da eficiência do grupo de linhas.
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 mais informações, veja Verificar a fragmentação de um índice de column stock.