2013-12-11 2 views
1

В моей рабочей области у нас есть 100 баз данных MS SQL по всей стране, откуда нам нужно запросить данные обратно в один SQL-бит. Мы можем сделать это либо с помощью OpenRowSet, либо LinkedServer. Но какой из них следует использовать.Openrowset vs. Связанный сервер

Openrowset является ad-hoc. Поэтому связь должна устанавливаться каждый раз, когда вызывается openrowset. Это должно иметь некоторые дополнительные накладные расходы на производительность.

С другой стороны Связанный сервер является постоянным. Поэтому нет необходимости устанавливать соединение каждый раз (я думаю). Но центральный сервер должен иметь все эти связанные серверы, добавленные к нему. Может ли такое количество связанных серверов повлиять на сервер?

Нижняя линия заключается в том, что для подключения к множеству серверов ежемесячно, что будет лучше подходить? openrowset или связанный сервер?

+0

В прошлом у меня были плохие впечатления со связанными серверами с использованием сложных баз данных. В итоге нам пришлось переписать наш код для запроса каждой базы данных по одному (многопоточность) и слияния результатов. Вот техническая статья об этой проблеме со связанными серверами: http://blogs.technet.com/b/pfelatam/archive/2011/09/07/linked-server-behavior-when-used-on-join-clauses.aspx –

+0

Что делать, если я использую только 'Operquery' со связанным сервером? – th1rdey3

ответ

0

Как я помню, OpenRowSet выполняет запрос на удаленном сервере, тогда как Linked Server делает соединение локально. (Намного более ресурсоемким, чем проблемы с соединением).

Смежные вопросы