Qual a melhor opção? Select de um linked server ou insert into usando linked server?
Suponhamos que você tem uma operação para fazer onde você deve transferir dados de um servidor A para um servidor B através de um linked server a melhor opção é select de um linked server ou insert into usando um linked server?
Por exemplo:
Executar no servidor de origem:
INSERT INTO [LinkedServerDeDestino].[DBDestino].[dbo].[Tabela] SELECT a, b, c, ... FROM [dbo].Udf_ExportarDados()
Ou executar no servidor de destino:
INSERT INTO [dbo].[Tabela] SELECT a, b, c, ... FROM OPENQUERY([LinkedServerDeOrigem], 'SELECT a, b, c, ... FROM [DBOrigem].[dbo].ExportarDados()')
Qual dos dois é mais rápido?
Resposta:
Digamos que você quer mover dados de um servidor para outro. Melhor forma de fazer isso é:
– Se você quer todos os dados use um backup / restore, BPC OUT & BCP IN ou SSIS.
– Se você quer apenas alguns dados de algumas tabelas use SSIS ou BCP.
Para remoção de dados de um servidor para o outro a performance vai depender do tamanho dos dados e a largura de banda da sua rede.
No primeiro exemplo da query citada acima, esse tipo de query é conhecido como pushing data, onde você executa a query no servidor de origem e “empurra” os dados para o servidor de destino.
No segundo exemplo citado acima, esse tipo de query é conhecido como pulling data onde você executa a query do servidor de destino puxando os dados do servidor de origem. Essa segunda opção é mais rápida e consome menos recursos em comparação com a primeira versão, (dependendo da quantidade de dados que está sendo “puxado”).
Wesley Mota
Latest posts by Wesley Mota (see all)
- The Ultimate Guide to Gry Online Ruletka - novembro 14, 2024