Qual a mais rápida importação ?
14/06/2011
0
Pessoal,
tenho vários arquivos em formato txt que preciso importá-los para o SQLServer2008.
São arquivos com periodicidade diária, semanal e mensal, de tamnhos variados (o maior tem uns 3Gb).
Não tive tempo ainda para testar, pois cheguei no meu atual setor recentemente. E já que aqui está tudo muito corrido, gostaria de saber se alguém pode me indicar a melhor solução para o seguinte:
- no servidor remoto SQLServer2008, atualmente executo a seguinte procedure para importar o txt:
Funciona, mas demora.
A grande pergunta é: seria mais rápida a importação usando BULK INSERT ?
Quaisquer outras dicas são muito bem-vindas também.
Obrigado pela atenção.
tenho vários arquivos em formato txt que preciso importá-los para o SQLServer2008.
São arquivos com periodicidade diária, semanal e mensal, de tamnhos variados (o maior tem uns 3Gb).
Não tive tempo ainda para testar, pois cheguei no meu atual setor recentemente. E já que aqui está tudo muito corrido, gostaria de saber se alguém pode me indicar a melhor solução para o seguinte:
- no servidor remoto SQLServer2008, atualmente executo a seguinte procedure para importar o txt:
USE [CARTAO] GO /****** Object: StoredProcedure [dbo].[Importa_RELF012] Script Date: 06/14/2011 12:44:43 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[Importa_RELF012] @DtMov AS SmallDateTime AS BEGIN SET LANGUAGE Brazilian TRUNCATE TABLE CARTAO..VIP_Plasticos INSERT INTO CARTAO..VIP_Plasticos SELECT TXT.MCI, TXT.CONTACARTAO, SUBSTRING(TXT.PLASTICO,2,16) AS PLASTICO, TXT.TITULARIDADE, TXT.RESTRICAO, MESTRE.dbo.IsSmallDateTime(TXT.DTVALIDADE) AS DTVALIDADE, TXT.EMBOSSAMENTO, TXT.ENVIO, TXT.PREFDEP, MESTRE.dbo.IsSmallDateTime(TXT.DTEMISSAO) AS DTEMISSAO, MESTRE.dbo.IsSmallDateTime(TXT.DTATIVACAO) AS DTATIVACAO, MESTRE.dbo.IsSmallDateTime(TXT.DTCANCELAMENTO) AS DTCANCELAMENTO, TXT.CHIP, @DtMov AS DTMOV -- parâmetro passado na execução que é a data da geração do arquivo FROM TXT...RELF012#TXT AS TXT -- linked server no diretório TXT onde estão os arquivos WHERE TXT.TITULARIDADE < 256 DBCC SHRINKDATABASE (CARTAO) END
Funciona, mas demora.
A grande pergunta é: seria mais rápida a importação usando BULK INSERT ?
Quaisquer outras dicas são muito bem-vindas também.
Obrigado pela atenção.
Jmarcel
Curtir tópico
+ 0
Responder
Posts
10/07/2011
Marco Pinheiro
Marcel,
A demora é relativa.
Hj esta demora é de qto tempo? Segundo vc, rodar uma importação de arquivos com 3GB é bem pesado.
Talvez vc possa quebrar esta importação durante o dia. Ao invés de mandar um pacotão de uma vez, vc pode mandar vários pacotes durante o dia.
Se quiser detalhar mais o seu processo, talvez possa ter outras saídas.
Att.,
Marco.
Responder
Clique aqui para fazer login e interagir na Comunidade :)