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

Aplica-se a:SQL Server

Para um banco de dados no modelo de recuperação completa, todas as operações de inserção de linha executadas pela importação em massa são registradas completamente no log de transações. Importações de grandes volumes de dados poderão fazer o log de transações ficar cheio 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 bulk-logged, o log mínimo de operações de importação em massa reduz a possibilidade de que uma operação de importação em massa preencha o espaço de log. O log mínimo também é mais eficiente que o log completo.

Observação

O modelo de recuperação bulk-logged foi projetado para substituir temporariamente o modelo de recuperação completa durante operações em massa de grande porte.

Requisitos de tabela para registrar minimamente operações de importação em massa

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

  • A tabela não está sendo replicada.

  • O bloqueio da 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 da importação com log em massa, o Mecanismo de Banco de Dados ainda faz o log de 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 ocorrência de log mínimo em uma tabela também poderá depender se a tabela estiver indexada e, nesse caso, se a tabela estiver vazia:

  • Se a tabela não tiver nenhum índice, as páginas de dados terão log mínimo.

  • Se a tabela não tiver nenhum índice clusterizado, mas tiver um ou mais índices não clusterizados, as páginas de dados sempre terão log mínimo. No entanto, a forma como as páginas de índice são registradas depende da tabela:

    • Se a tabela estiver vazia, a páginas de índice terão log mínimo. Se você iniciar com uma tabela vazia e importar os dados em massa em vários lotes, para o primeiro lote as páginas de índice e as páginas de dados terão log mínimo, mas começando com o segundo lote, só as páginas de dados terão log mínimo.

    • 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 de dados serão totalmente registradas.

  • Se a tabela tiver um índice clusterizado e estiver vazia, ambas as páginas de dados e de índice terão log mínimo. Por outro lado, se uma tabela tiver um índice clusterizado baseado na árvore B e não estiver vazia, as páginas de dados e as páginas de índice terão um log completo, independentemente do modelo de recuperação. Se você começar com uma tabela rowstore 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 do segundo lote em diante, somente as páginas de dados serão registradas em massa.

    Observação

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

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

Observação

Quando a replicação transacional está habilitada, as operações BULK INSERT são totalmente registradas mesmo no modelo de recuperação bulk logged.

Confira também

Próximas etapas