Março 6, 2010

Faster BULK INSERT

Posted in SQL Server às 22:31 por Henrry Pires

Nos próximos dias vou escrever algumas coisas que tenho encontrado, sobre SQLServer.

Para já vou mostrar-vos uma opção muito interessante sobre BULK INSERT.

BULK INSERT TabelaDestino
FROM 'c:\Source.csv'
WITH 
(
    FIELDTERMINATOR = ','
    ,ROWTERMINATOR = '\n'
    ,ORDER (CampoIndexCluster)
)

GO

Vemos por tanto que estamos a importar um ficheiro chamado Source.csv, cujos campos estão separados por ‘,’ (definido pelo parâmetro FIELDTERMINATOR) e as linhas são separados por ‘enter’, isto é’\n’ (definido pelo parâmetro ROWTERMINATOR ).

Tudo normal até agora, o truque passa então pelo terceiro parametro ORDER.
Este parâmetro não contem nenhum valor pré-definido, mas caso a tabela de destino tenha um índice cluster, podemos melhorar significativamente o tempo de importação, por atribuir a este parametro a mesma ordem do índice.


Conclusão

Sempre que a tabela destino tenha um índex cluster, é conveniente atribuir ao parâmetro ORDER a ordenação do índice.

Anúncios

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s

%d bloggers like this: