Diretrizes básicas para importação de dados em massa

Você pode usar o comando bcp, a instrução BULK INSERT ou a função OPENROWSET (BULK) para a importação de dados em massa de somente um arquivo de dados.

ObservaçãoObservação

É possível gravar um aplicativo personalizado que importa dados em massa de objetos que não sejam arquivos de texto. Para a importação de dados em massa de buffers de memória, use as extensões bcp para a API do SQL Server Native Client (ODBC) ou a interface OLE DB IRowsetFastLoad. Para importar dados em massa de uma tabela de dados C#, use a API de cópia em massa do ADO.NET, SqlBulkCopy.

ObservaçãoObservação

A importação de dados em massa em uma tabela remota não é suportada.

Use as seguintes diretrizes ao exportar dados em massa de um arquivo de dados para uma instância do MicrosoftSQL Server:

  • Obtenha as permissões exigidas para sua conta do usuário.

    A conta do usuário na qual você usa o utilitário bcp , a instrução BULK INSERT ou a INSERT... SELECT * FROM OPENROWSET(BULK...) SELECT * FROM OPENROWSET (BULK...) deve ter as permissões exigidas na tabela que são atribuídas pelo proprietário de tabela. Para obter mais informações sobre as permissões necessárias para cada método, consulte Utilitário bcp, OPENROWSET (Transact-SQL)e BULK INSERT (Transact-SQL).

  • Use o modelo de recuperação bulk-logged

    Esta diretriz é para um banco de dados que usa o modelo de recuperação completa. O modelo de recuperação bulk-logged é útil ao executar operações em massa em uma tabela não-indexada (uma heap). O uso da recuperação com log de operações em massa ajuda a impedir que o log de transações fique sem espaço porque a recuperação com log de operações em massa não executa inserções de linhas de log. Para obter mais informações sobre o modelo de recuperação bulk-logged, consulte Backup no modelo de recuperação com log de operações em massa.

    Recomendamos que você altere o banco de dados para usar o modelo de recuperação bulk-logged imediatamente antes da operação de importação em massa. Imediatamente após, você deve reajustar o banco de dados para o modelo de recuperação completa. Para obter mais informações, consulte Considerações sobre como alternar do modelo de recuperação completa ou bulk-logged.

    ObservaçãoObservação

    Para obter mais informações sobre como minimizar registro durante operações de importação em massa, consulte Pré-requisitos para log mínimo em importação em massa.

  • Faça backup após a importação de dados em massa.

    Para um banco de dados que usa o modelo de recuperação simples, recomendamos que você faça um backup diferencial ou completo após a finalização da operação de importação em massa. Para obter mais informações, consulte Criando backups completos e diferenciais de um banco de dados do SQL Server.

    Um backup de log é suficiente para o modelo de recuperação completa ou o modelo de recuperação bulk-logged. Para obter mais informações, consulte Criando backups de log de transações.

  • Descarte os índices da tabela para melhorar o desempenho para grandes importações em massa.

    Esta diretriz é para quando você estiver importando uma grande quantidade de dados em comparação à quantidade de dados que já está na tabela. Neste caso, descartar os índices da tabela antes de executar a operação da importação em massa pode aumentar significativamente o desempenho.

    ObservaçãoObservação

    Se você estiver carregando uma quantidade pequena de dados em comparação à quantidade de dados presente na tabela, descartar os índices será contraproducente. É provável que o tempo exigido para recriar os índices seja mais longo do que o tempo economizado durante a operação de importação em massa.

    Para obter mais informações, consulte Otimizando o desempenho de importação em massa.

  • Encontre e remova caracteres ocultos no arquivo de dados.

    Muitos utilitários e editores de textos exibem caracteres ocultos que normalmente estão no final do arquivo de dados. Durante uma operação de importação em massa, os caracteres ocultos em um arquivo de dados ASCII podem causar problemas que provocam erro de "unexpected null found" Encontrar e remover todos os caracteres ocultos deve ajudar a evitar este problema.