Присоединиться к связанному серверу или к хост-серверу?
Вот такая ситуация: у нас есть база данных Oracle, к которой нам нужно подключиться, чтобы получить некоторые данные. Поскольку получение доступа к указанной базе данных Oracle-это настоящая боль (в основном бюрократическое препятствие больше, чем что-либо другое), мы просто планируем связать ее с нашим SQL-сервером и использовать ссылку для доступа к данным по мере необходимости.
Для одного из наших приложений мы планируем создать представление, чтобы получить необходимые нам данные. Теперь нужные нам данные объединены из двух таблиц. Если мы сделаем это, что будет быть предпочтительнее?
Это (в псевдо-SQL, если такая вещь существует):
OPENQUERY(Oracle, "SELECT [cols] FROM table1 INNER JOIN table2")
Или вот это:
SELECT [cols] FROM OPENQUERY(Oracle, "SELECT [cols1] FROM table1")
INNER JOIN OPENQUERY(Oracle, "SELECT [cols2] from table2")
Есть ли какая-то причина предпочесть одно другому? Одно следует иметь в виду: мы ограничиваемся тем, как долго запрос может выполняться для доступа к серверу Oracle.3 ответа:
Если внутреннее соединение значительно уменьшает общее число строк, то вариант 1 приведет к гораздо меньшему сетевому трафику (так как вам не придется все строки из таблицы 1 проходить через ссылку БД