Pré-requisitos para registro mínimo na importação em massa

Aplica-se a:SQL Server

Para um banco de dados sob o modelo de recuperação completa, todas as operações de inserção de linha executadas por importação em massa são totalmente registradas no log de transações. Grandes importações de dados podem fazer com que o log de transações seja preenchido rapidamente se o modelo de recuperação completa for usado. Por outro lado, no modelo de recuperação simples ou no modelo de recuperação com registo de operações em massa, o registo mínimo das operações de importação em massa reduz a possibilidade de uma operação de importação em massa preencher o espaço do registo de transações. O registro mínimo também é mais eficiente do que o registro completo.

Observação

O modelo de recuperação "bulk-logged" foi concebido para substituir temporariamente o modelo de recuperação total durante operações em massa de grande dimensão.

Requisitos da tabela para operações de importação em massa com registo mínimo

O log mínimo requer que a tabela de destino atenda às seguintes condições:

  • A tabela não está sendo replicada.

  • O bloqueio de tabela é especificado (usando TABLOCK).

    Observação

    Embora as inserções de dados não sejam registradas no log de transações durante uma operação de importação em massa minimamente registrada, o Mecanismo de Banco de Dados ainda registra alocações de extensão cada vez que uma nova extensão é alocada à tabela.

  • A tabela não é uma tabela com otimização de memória.

A possibilidade de ocorrer registo mínimo numa tabela também depende de saber se a tabela está indexada e, em caso afirmativo, se a tabela está vazia:

  • Se a tabela não tiver índices, as páginas de dados serão minimamente registradas.

  • Se a tabela não tiver nenhum índice clusterizado, mas tiver um ou mais índices não clusterizados, as páginas de dados serão sempre minimamente registradas. No entanto, a forma como as páginas de índice são registadas depende se a tabela está vazia:

    • Se a tabela estiver vazia, as páginas de índice serão minimamente registradas. Se você começar com uma tabela vazia e importar em massa os dados em vários lotes, as páginas de índice e de dados serão minimamente registradas para o primeiro lote, mas a partir do segundo lote, apenas as páginas de dados serão minimamente registradas.

    • Se a tabela não estiver vazia, as páginas de índice serão totalmente registradas.

    • Se um dos índices tiver IGNORE_DUP_KEY = ON, as páginas de índice e dados serão totalmente registradas.

  • Se a tabela tiver um índice clusterizado e estiver vazia, os dados e as páginas de índice serão minimamente registrados. Por outro lado, se uma tabela tiver um índice clusterizado baseado em árvore B e não estiver vazia, as páginas de dados e as páginas de índice serão totalmente registradas, independentemente do modelo de recuperação. Se você começar com uma tabela de armazenamento de linhas vazia e importar em massa os dados em lotes, as páginas de índice e de dados serão minimamente registradas para o primeiro lote, mas a partir do segundo lote, apenas as páginas de dados serão registradas em massa.

    Observação

    A documentação usa o termo árvore B geralmente em referência a índices. Em índices de armazenamento em linha, o Mecanismo de Base de Dados implementa uma árvore B+. Isso não se aplica a índices de armazenamento em colunas ou a índices em tabelas com otimização de memória. Para obter mais informações, consulte o guia de arquitetura e design de índices do SQL Server e SQL do Azure .

  • Para obter informações sobre o registro em log de um índice columnstore (CCI) clusterizado, consulte Diretrizes de carregamento de dados do índice Columnstore.

Observação

Quando a replicação transacional está ativada, as operações BULK INSERT são totalmente registadas mesmo no modelo de recuperação com registo em massa.

Próximo passo