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
Devolve uma linha para cada segmento de coluna num índice columnstore. Existe um segmento de coluna por coluna por grupo de linhas. Por exemplo, um índice columnstore com 10 grupos de linhas e 34 colunas tem 340 linhas nesta vista.
| Nome da coluna | Tipo de dados | Description |
|---|---|---|
partition_id |
bigint | Indica o ID da partição. É exclusivo dentro de um banco de dados. |
hobt_id |
bigint | ID do heap ou índice da árvore B (HoBT) para a tabela que tem este índice de stock. |
column_id |
int | ID da coluna columnstore. |
segment_id |
int | ID do grupo de linhas. Para compatibilidade retroativa, o nome da coluna continua a ser chamado segment_id mesmo sendo o ID do grupo de linhas. Pode identificar de forma única um segmento usando <hobt_id, partition_id, column_id, segment_id>. |
version |
int | Versão do formato de segmento de coluna. |
encoding_type |
int | Tipo de codificação usada para esse segmento: 1 = VALUE_BASED - não-string/binário sem dicionário (semelhante ao 4 com algumas variações internas) 2 = VALUE_HASH_BASED - coluna não-string/binária com valores comuns no dicionário 3 = STRING_HASH_BASED - string/coluna binária com valores comuns no dicionário 4 = STORE_BY_VALUE_BASED - não-string/binário sem dicionário 5 = STRING_STORE_BY_VALUE_BASED - string/binário sem dicionário Para obter mais informações, consulte a seção |
row_count |
int | Número de filas no grupo de filas. |
has_nulls |
int | 1 se o segmento da coluna tiver NULLs. |
base_id |
bigint | ID de valor base se estiver a ser usado o tipo de codificação 1. Se a codificação tipo 1 não estiver a ser usada, base_id está definida para -1. |
magnitude |
float | Magnitude se estiver a ser usada a codificação tipo 1. Se a codificação tipo 1 não estiver a ser usada, magnitude está definida para -1. |
primary_dictionary_id |
int | Um valor de 0 representa o dicionário global. Um valor de -1 indica que não existe um dicionário global criado para esta coluna. |
secondary_dictionary_id |
int | Um valor não nulo aponta para o dicionário local desta coluna no segmento atual (por exemplo, o grupo de linhas). Um valor de -1 indica que não existe dicionário local para este segmento. |
min_data_id |
bigint | Apenas para uso interno. |
max_data_id |
bigint | Apenas para uso interno. |
null_value |
bigint | Valor usado para representar nulos. |
on_disk_size |
bigint | Tamanho do segmento em bytes. |
collation_id |
int | A classificação atual quando o segmento foi criado. Corresponde a um ID interno. Apenas para uso interno. Aplica-se a: SQL Server 2022 (16.x) e versões posteriores, Banco de Dados SQL do Azure e Instância Gerenciada SQL do Azure |
min_deep_data |
Varbinary(18) | Usado para eliminação de segmentos. 1 Para uso interno apenas. Aplica-se a: SQL Server 2022 (16.x) e versões posteriores, Banco de Dados SQL do Azure e Instância Gerenciada SQL do Azure |
max_deep_data |
Varbinary(18) | Usado para eliminação de segmentos. 1 Para uso interno apenas. Aplica-se a: SQL Server 2022 (16.x) e versões posteriores, Banco de Dados SQL do Azure e Instância Gerenciada SQL do Azure |
1 Após a atualização para uma versão do Motor de Base de Dados que suporta eliminação min/max de segmentos para um conjunto expandido de tipos de dados (introduzido no SQL Server 2022 (16.x)), os min_deep_data e max_deep_data são NULL até que o índice de coluna seja reconstruído usando uma ALTER INDEX ... REBUILD instrução ou.CREATE INDEX ... WITH (DROP_EXISTING = ON)
Observações
O tipo de codificação de segmento columnstore é selecionado pelo Motor de Base de Dados analisando os dados do segmento com o objetivo de alcançar o menor custo de armazenamento. Se os dados forem maioritariamente distintos, o Motor de Base de Dados utiliza codificação baseada em valores. Se os dados não forem maioritariamente distintos, o Motor de Base de Dados utiliza codificação baseada em hash. A escolha entre codificação baseada em strings e baseada em valores está relacionada com o tipo de dados armazenados, sejam dados string ou binários. Todas as codificações aproveitam o bit-packing e a codificação por comprimento de execução sempre que possível.
A eliminação de segmentos de Column Store aplica-se a tipos de dados numéricos, de data e hora, e ao tipo de dado datetimeoffset com escala menor ou igual a dois. A partir do SQL Server 2022 (16.x), as capacidades de eliminação de segmentos expandem-se para tipos de dados string e binários, o tipo de dado singleidentifier e o tipo de dados datetimeoffset para escalas superiores a dois. A eliminação de segmentos não se aplica a tipos de dados LOB como varchar(max),nvarchar(max) e varbinary(max). Para mais informações, consulte O que há de novo nos índices de columnstore.
Permissions
É necessária a VIEW DEFINITION permissão para a visualização. As colunas seguintes retornam NULL , a menos que o utilizador também tenha a SELECT permissão: has_nulls, base_id, magnitude, min_data_id, max_data_id, e null_value.
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
A consulta seguinte devolve informações sobre segmentos de um índice de column store.
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;
Conteúdo relacionado
- Guia de Índices de Columnstore
- Ajuste de desempenho com índices ordenados de colunas
- Exibições do catálogo de objetos (Transact-SQL)
- Visualizações do catálogo (Transact-SQL)
- Consultando o catálogo do sistema do SQL Server
- sys.columns (Transact-SQL)
- sys.all_columns (Transact-SQL)
- sys.computed_columns (Transact-SQL)
- sys.column_store_dictionaries (Transact-SQL)