У меня есть импорт между двумя связанными серверами. По сути, мне нужно получить данные из множественного соединения в таблицу на моей стороне.
Текущий запрос выглядит примерно так:
select a.*
from db1.dbo.tbl1 a
inner join db1.dbo.tbl2 on ...
inner join db1.dbo.tbl3 on ...
inner join db1.dbo.tbl4 on ...
inner join db2.dbo.myside on ...
db1 = связанный сервер
db2 = моя собственная база данных
После этого я использую вставку в + select, чтобы добавить эти данные в мою таблицу, которая находится в db2. (обычно несколько сотен записей - этот импорт выполняется раз в минуту)
Мой вопрос связан с производительностью. Таблицы на связанном сервере (tbl1, tbl2, tbl3, tbl4) — это огромные таблицы с миллионами записей, что замедляет процесс импорта. Мне сказали, что если я выполняю соединение на «другой» стороне (db1 — связанный сервер), например, в хранимой процедуре, даже если запрос выглядит так же, он будет выполняться быстрее. Это правильно? Это как-то сложно проверить. Обратите внимание, что соединение также содержит таблицу из моей базы данных.
Также. есть ли другие «трюки», которые я мог бы использовать, чтобы сделать это быстрее? Спасибо