В моей рабочей области у нас есть 100 баз данных MS SQL по всей стране, откуда нам нужно запросить данные обратно в один SQL-бит. Мы можем сделать это либо с помощью OpenRowSet
, либо LinkedServer
. Но какой из них следует использовать.Openrowset vs. Связанный сервер
Openrowset является ad-hoc. Поэтому связь должна устанавливаться каждый раз, когда вызывается openrowset. Это должно иметь некоторые дополнительные накладные расходы на производительность.
С другой стороны Связанный сервер является постоянным. Поэтому нет необходимости устанавливать соединение каждый раз (я думаю). Но центральный сервер должен иметь все эти связанные серверы, добавленные к нему. Может ли такое количество связанных серверов повлиять на сервер?
Нижняя линия заключается в том, что для подключения к множеству серверов ежемесячно, что будет лучше подходить? openrowset или связанный сервер?
В прошлом у меня были плохие впечатления со связанными серверами с использованием сложных баз данных. В итоге нам пришлось переписать наш код для запроса каждой базы данных по одному (многопоточность) и слияния результатов. Вот техническая статья об этой проблеме со связанными серверами: http://blogs.technet.com/b/pfelatam/archive/2011/09/07/linked-server-behavior-when-used-on-join-clauses.aspx –
Что делать, если я использую только 'Operquery' со связанным сервером? – th1rdey3