Compartilhar via


sys.internal_partitions (Transact-SQL)

Aplica-se a: SQL Server 2016 (13.x) e posterior Banco de Dados SQL do AzureInstância Gerenciada de SQL do Azure

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 rastreiam linhas excluídas, mapeamentos de rowgroup e rowgroups de repositório delta. Eles rastreiam os dados de 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. É exclusiva em um banco de dados.
object_id int ID do objeto para a tabela que contém a partição.
index_id int ID do índice columnstore definido na tabela.

1 = índice columnstore clusterizado
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 - Esse índice bitmap rastreia linhas marcadas como excluídas do columnstore. O bitmap é para cada rowgroup, pois as partições podem ter linhas em vários rowgroups. Essas linhas ainda estão fisicamente presentes e ocuparão espaço no columnstore.

COLUMN_STORE_DELTA_STORE - Armazena grupos de linhas, chamadas rowgroups, que não foram compactadas no armazenamento de colunas. Cada partição de tabela pode ter zero ou mais rowgroups deltastore.

COLUMN_STORE_DELETE_BUFFER – Para manter exclusões em índices columnstore não clusterizados atualizáveis. Quando uma consulta exclui uma linha da tabela rowstore 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. A 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 não clusterizado secundário. Isso mapeia as chaves de índice não clusterizados para o rowgroup e a ID da linha no columnstore. Ele armazena apenas chaves para linhas que se movem para um rowgroup diferente. Isso ocorre quando um rowgroup delta é compactado no columnstore e quando uma operação de mesclagem mescla linhas de dois rowgroups diferentes.
row_group_id int ID para o rowgroup deltastore. Cada partição de tabela pode ter zero ou mais rowgroups deltastore.
hobt_id bigint ID do objeto de conjunto de linhas interno (HoBT). Pode ser usado em junções com outras exibiçõ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 compactação para cada partição:

0 = NONE
1 = ROW
2 = PAGE
data_compression_desc nvarchar(60) O tipo de compactaçã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

Exige a associação à função public. Para obter mais informações, consulte Metadata Visibility Configuration.

Observações

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

Exemplos

R. 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 ingressar 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>');