Usando índices Columnstore não clusterizados

Descreve as principais tarefas para usar um índice columnstore não clusterizado em uma tabela do SQL Server.

Para obter uma visão geral dos índices columnstore, consulte Columnstore Indexes Described.

Para obter informações sobre índices columnstore clusterizados, consulte Usando índices Columnstore clusterizados.

Conteúdos

Criar um índice Columnstore não clusterizado

Para carregar dados em um índice columnstore não clusterizado, primeiro carregue os dados em uma tabela rowstore tradicional armazenada como um heap ou índice clusterizado e, em seguida, use CREATE COLUMNSTORE INDEX (Transact-SQL) para criar um índice columnstore.

Carregando dados em um índice do armazém de colunas

Alterar os dados em um índice Columnstore não clusterizado

Depois de criar um índice columnstore não clusterizado em uma tabela, você não poderá modificar diretamente os dados nessa tabela. Uma consulta com INSERT, UPDATE, DELETE ou MERGE falhará e retornará uma mensagem de erro. Para adicionar ou modificar os dados na tabela, você pode fazer um dos seguintes procedimentos:

  • Desabilite o índice columnstore. Em seguida, você pode atualizar os dados na tabela. Se você desabilitar o índice columnstore, poderá reconstruir o índice columnstore ao terminar a atualização dos dados. Por exemplo:

    ALTER INDEX mycolumnstoreindex ON mytable DISABLE;
    -- update mytable --
    ALTER INDEX mycolumnstoreindex on mytable REBUILD
    
  • Remova o índice columnstore, atualize a tabela e, em seguida, recrie o índice columnstore com CREATE COLUMNSTORE INDEX. Por exemplo:

    DROP INDEX mycolumnstoreindex ON mytable
    -- update mytable --
    CREATE NONCLUSTERED COLUMNSTORE INDEX mycolumnstoreindex ON mytable;
    
    
  • Carregue os dados em uma tabela temporária que não possua um índice columnstore. Crie um índice columnstore na tabela intermediária. Mova a tabela de estágio para uma partição vazia da tabela principal.

  • Alterne uma partição da tabela com o índice columnstore para uma tabela de preparo vazia. Se houver um índice columnstore na tabela de preparo, desabilite o índice columnstore. Execute todas as atualizações. Compile (ou recompile) o índice columnstore. Retorne a tabela de preparação para a partição (agora vazia) da tabela principal.