Compartilhar via


Preparar para importar dados em massa (SQL Server)

Aplica-se: SQL Server

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 somente de um arquivo de dados.

Observaçã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 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çã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 Microsoft SQL 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 instrução INSERT... 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, veja 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 Modelos de recuperação (SQL Server).

    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, veja Exibir ou alterar o modelo de recuperação de um banco de dados (SQL Server).

    Observação

    mais informações sobre como minimizar o log durante operações de importação em massa, veja Pré-requisitos para log mínimo na 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, veja Criar um backup completo de banco de dados (SQL Server) ou Criar um backup de banco de dados diferencial (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, confira Backups de log de transações (SQL Server).

  • 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çã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.

  • 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.

Confira também

Importar e exportar dados em massa usando o Utilitário bcp (SQL Server)
Importar Dados em Massa Usando BULK INSERT ou OPENROWSET(BULK...) (SQL Server)
Utilitário bcp
BULK INSERT (Transact-SQL)
Formatos de dados para importar ou exportar em massa (SQL Server)
OPENROWSET (Transact-SQL)