Partilhar via


sys.internal_partitions (Transact-SQL)

Aplica-se a: SQL Server 2016 (13.x) e versões posteriores Azure SQL Database AzureSQL Managed InstanceSQL database in Microsoft Fabric

Retorna uma linha para cada conjunto de linhas que rastreia dados internos para índices columnstore em tabelas baseadas em disco. Esses conjuntos de linhas são internos aos índices columnstore e controlam linhas excluídas, mapeamentos de grupos de linhas e grupos de linhas de armazenamento delta. Eles rastreiam dados para cada partição de tabela. Cada tabela tem pelo menos uma partição. O Mecanismo de Banco de Dados recria os conjuntos de linhas sempre que recria o índice columnstore.

Nome da coluna Tipo de dados Descrição
partition_id bigint ID da partição para esta partição. Isso é exclusivo dentro de um banco de dados.
object_id Int ID do objeto para a tabela que contém a partição.
index_id Int ID de índice para o índice columnstore definido na tabela.

1 = índice columnstore agrupado
2 = índice columnstore não clusterizado
partition_number Int O número da partição.

1 = primeira partição de uma tabela particionada ou a partição única de uma tabela não particionada.

2 = segunda partição, e assim por diante.
internal_object_type tinyint Objetos de conjunto de linhas que rastreiam dados internos para o índice columnstore.

2 = COLUMN_STORE_DELETE_BITMAP
3 = COLUMN_STORE_DELTA_STORE
4 = COLUMN_STORE_DELETE_BUFFER
5 = COLUMN_STORE_MAPPING_INDEX
internal_object_type_desc Nvarchar(60) COLUMN_STORE_DELETE_BITMAP - Este índice de bitmap rastreia linhas marcadas como excluídas do columnstore. O bitmap é para cada grupo de linhas, uma vez que as partições podem ter linhas em vários grupos de linhas. Essas linhas ainda estão fisicamente presentes e ocupam espaço no columnstore.

COLUMN_STORE_DELTA_STORE - Armazena grupos de linhas, chamados rowgroups, que não foram compactados em armazenamento colunar. Cada partição de tabela pode ter zero ou mais grupos de linhas deltastore.

COLUMN_STORE_DELETE_BUFFER - Para manter exclusões para índices columnstore não clusterizados atualizáveis. Quando uma consulta exclui uma linha da tabela de armazenamento de linhas subjacente, o buffer de exclusão rastreia a exclusão do columnstore. Quando o número de linhas excluídas excede 1.048.576, elas são mescladas novamente no bitmap de exclusão pelo thread de plano de fundo do Tuple Mover ou por uma ALTER INDEX ... REORGANIZE operação. Em qualquer momento, a união do bitmap de exclusão e do buffer de exclusão representa todas as linhas excluídas.

COLUMN_STORE_MAPPING_INDEX - Usado somente quando o índice columnstore clusterizado tem um índice secundário não clusterizado. Isso mapeia chaves de índice não clusterizadas para o grupo de linhas e a ID da linha no columnstore. Ele armazena apenas chaves para linhas que se movem para um grupo de linhas diferente. Isso ocorre quando um grupo de linhas delta é compactado no columnstore e quando uma operação de mesclagem mescla linhas de dois grupos de linhas diferentes.
row_group_id Int ID para o grupo de linhas deltastore. Cada partição de tabela pode ter zero ou mais grupos de linhas deltastore.
hobt_id bigint ID do objeto de conjunto de linhas interno (HoBT). Pode ser usado em junções com outras visualizações e funções do sistema, como sys.dm_db_index_physical_stats() para obter mais informações sobre as características físicas do conjunto de linhas interno.
rows bigint Número aproximado de linhas nesta partição.
data_compression tinyint O tipo de compressão para cada partição:

0 = NONE
1 = ROW
2 = PAGE
data_compression_desc Nvarchar(60) O tipo de compressão para cada partição. Os valores possíveis para tabelas rowstore são NONE, ROWe PAGE. Os valores possíveis para tabelas columnstore são COLUMNSTORE e COLUMNSTORE_ARCHIVE.

Permissões

Requer associação à public função. Para obter mais informações, consulte Configuração de visibilidade de metadados.

Observações

O Mecanismo de Banco de Dados recria novos índices internos columnstore sempre que cria ou reconstrói um índice columnstore.

Exemplos

Um. Exibir todos os conjuntos de linhas internos de uma tabela

Este exemplo retorna todos os conjuntos de linhas columnstore internos de uma tabela. Você também pode usar a hobt_id coluna para unir com outras exibições e funções do sistema e encontrar mais informações sobre o conjunto de linhas específico.

SELECT i.object_id,
       i.index_id,
       i.name,
       p.hobt_id,
       p.internal_object_type_id,
       p.internal_object_type_desc
FROM sys.internal_partitions AS p
     INNER JOIN sys.indexes AS i
         ON i.object_id = p.object_id
WHERE p.object_id = OBJECT_ID('<table name>');