У меня возникла проблема с объединением локальных таблиц и связанных таблиц серверов. Я могу сделать это, просто используя внутренние соединения, но это заставляет меня слишком долго выполнять запрос. Я знаю, что есть способ сделать это с помощью OPENQUERY, но я не могу это получить.Связанные серверы и локальные таблицы присоединяются
Вот что я делал в начале:
SELECT DISTINCT
local.L_ID
FROM dbo.local_table AS local
INNER JOIN [server].[db].[dbo].[TB_TEST] as ts
on local.L_ID = ts.L_ID
LEFT JOIN [server].[db].[dbo].[TB_EXE] as ex
on ts.A_ID = ex.T_ID
Теперь я пытаюсь сделать это:
SELECT DISTINCT
local.L_ID
FROM dbo.local_table AS local
INNER JOIN (
SELECT *
FROM OPENQUERY(SERVER,'SELECT L_ID FROM TB_TEST'
) ts
on local.L_ID = ts.L_ID
left join OPENQUERY(SERVER,'SELECT T_ID FROM TB_EXE') ex
on ts.A_ID = ex.T_ID
Можете ли вы помочь мне сделать это правильный путь, так что запрос выполняется быстрее ?
Невозможно улучшить соединение на связанном сервере, если объем данных большой. Рассмотрим уменьшение объема данных с одной стороны. Старая версия SQL Server плохо связана с подключением к серверу. Какую версию SQL Server вы используете? – qxg