none
Executar bcp com Linkedserver. RRS feed

  • Pergunta

  • Boa tarde!

        No ambiente que eu trabalho, tenho uma base que esta no Mysql, e existe 3 tabelas que terei que importar para o SQL Server. Cada tabela do Mysql tem cerca de 15 milhões de linhas, e para a importação criei um linkedserver, e estou executando o comando abaixo.

    IF OBJECT_ID(N'TEMPDB..#A2', N'U') IS NOT NULL DROP TABLE #A2

    SELECT * INTO #A2 FROM OPENQUERY (LINKEDPLAN,'
    SELECT 
     A.CPF,
     A.NUMERO,
     A.STATUS,
     B.CADASTRO_STATUS AS DESC_STATUS,
     A.TIPO,
     B.TELEFONE_TIPO,
     A.ORIGEM,
     A.ULTIMA_ATUALIZ
    FROM TELEFONE A
     LEFT JOIN CODIGO B ON A.`STATUS` = B.COD
     LEFT JOIN CODIGO C ON A.TIPO = C.COD
    WHERE A.`STATUS` = 1')

    Executando este comando, a memoria do SQL Server e toda consumida em 10 minutos. Para resolver a divergência, estou pesquisando para aplicar a clausula bcp, no entanto não estou sabendo utilizar com o linkedserver.

    Neste cenário, e possível utilizar o bcp com o linkedserver, ou vocês teriam outras dicas para o SQL Server não consumir toda a memoria ?

    Obrigado.


    terça-feira, 12 de junho de 2018 15:42

Respostas

Todas as Respostas

  • Heitor,

    Sim é possível, mas acredito que podemos te ajudar de outra forma.

    Qual é a versão do SQL Server que você esta utilizando? Conhece ferramentas como SQL Server Data Tools ou BIDS?

    Talvez um cenário mais interessante seja realizar o processo de exportação e importação de dados através de outros recursos como por exemplo arquivos texto.

    O uso do Linked Server é bastante prático e útil, mas o custo de processamento pode ser inviável dependendo do volume de dados que estamos utilizando.

    Você necessita importar de uma única vez esta quantidade? Não seria possível adotarmos um cenário de importação por partes?

    Além disso, não recomendo criar uma tabela temporária para este cenário, a princípio pense em ter esta tabela já criada antes de realizar as respectivos importações.


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    terça-feira, 12 de junho de 2018 19:20
  • Deleted
    terça-feira, 12 de junho de 2018 21:27
  • Pedro, boa noite!

        A versão que utilizo e a 2014 standard, e a ferramenta que eu conheço e a BIDS.

        Quanto a importação, e que sera necessário importar todos os dias a base para o SQL Server, e vou confirmar se existe um campo data que eu possa utilizar para quebrar essa base e importar por partes.

    Muito obrigado.

    quarta-feira, 13 de junho de 2018 01:32
  • José, boa noite!

          O consumo de memoria esta sendo consumindo, e impactando outros processos que esta rodando no SQL Server, e isto esta trazendo divergências.

          Quanto ao modelo de recuperação, o mesmo esta como simples.

          Quanto a tabela destino, existe sim espaço na Tempdb, e tem espaço também para novas tabelas físicas.

    Muito obrigado.

    quarta-feira, 13 de junho de 2018 01:38
  • Deleted
    quarta-feira, 13 de junho de 2018 10:04
  • Boa tarde,

    Por falta de retorno essa thread está encerrada.

    Se necessário favor abrir uma nova thread.

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    sexta-feira, 22 de junho de 2018 19:24
    Moderador