Назад | Перейти на главную страницу

Как я могу заставить связанный SQL Server использовать TCP / IP вместо именованных каналов?

У меня есть экземпляр SQL Server, Instance1, который имеет связанный SQL Server, Instance2. Связанный сервер технически работает, однако я уверен, что Instance1 подключается к Instance2 через именованные каналы. Я могу это очень ясно увидеть, протестировав образец запроса с использованием TCP / IP и именованных каналов. Время выполнения запроса - это разница между <1 второй для TCP / IP и > 45 секунд для именованных каналов.

Могу ли я принудительно включить связанный SQL Server Instance1 использовать TCP / IP при подключении к Instance2? Мне не удалось найти никакой информации по этому поводу. Есть ли у меня другие варианты, если это невозможно?

Я попытался создать связанный сервер, указав порт, но, похоже, он все равно использует именованные каналы, т.е. я создал его как Instance2,1433. Может быть, есть способ сказать master база данных для использования TCP / IP для связанных серверов?

Любая помощь приветствуется. Я надеюсь, что ответ будет не "Отключить именованные каналы в Instance2 Конфигурация SQL », хотя я понимаю, что мне, возможно, придется это сделать, если я не смогу заставить это работать.

Изменить: я, без сомнения, подтвердил, что именно именованные каналы вызывают проблему, и я видел ту же проблему с именованными каналами раньше (это хорошо задокументированное поведение именованных каналов). Я просто не видел, как решить эту проблему при использовании связанных серверов.

Я успешно попробовал Строка подключения метод принудительного выполнения протокола: Data Source=protocol:servername, portnumber;

Пример:

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