Como posso forçar um SQL Server vinculado a usar TCP / IP em vez de Pipes nomeados?

1

Eu tenho uma instância do SQL Server, Instance1 , que tem um SQL Server vinculado, Instance2 . O servidor vinculado funciona tecnicamente, mas tenho certeza de que Instance1 está se conectando a Instance2 via Named Pipes. Eu posso ver isso muito claramente testando uma consulta de amostra usando TCP / IP e Named Pipes. Os tempos de execução da consulta são uma diferença entre < 1 segundo para TCP / IP e > 45 segundos para os pipes nomeados.

Posso forçar o SQL Server vinculado em Instance1 a usar o TCP / IP ao se conectar a Instance2 ? Não consegui encontrar nenhuma informação relacionada a isso, tenho outras opções se isso não puder ser feito?

Eu tentei criar o servidor vinculado especificando a porta, mas parece que ele usa o Named Pipes, ou seja, eu criei como Instance2,1433 . Existe talvez uma maneira de dizer ao banco de dados master para usar o TCP / IP para servidores vinculados?

Qualquer ajuda é muito apreciada. Espero que a resposta não seja "Desativar pipes nomeados em Instance2 configuração SQL", embora eu saiba que talvez precise fazer isso se não conseguir fazer isso funcionar.

Editar: Eu tenho, sem dúvida, verificado que é Pipes nomeados que está causando o problema, e eu já vi esse mesmo problema com Pipes nomeados antes ( é um comportamento bem documentado de pipes nomeados). Eu só não vi como resolvê-lo ao usar servidores vinculados.

    
por test 04.02.2017 / 05:18

1 resposta

1

Eu tentei, com sucesso, o método String de conexão para forçar um protocolo :   Data Source=protocol:servername, portnumber;

Exemplo:

EXEC master.dbo.sp_addlinkedserver @server = N'DB_OBRA', @srvproduct=N'sql_server', @provider=N'SQLNCLI11', @datasrc=N'tcp:10.0.34.33'
    
por 26.04.2018 / 22:28