Лучший способ сделать удаленный запрос SQL Server?

У меня есть два экземпляра SQL Server, и я делаю много удаленных запросов к базе данных на одном сервере с другого сервера. Как этот запрос на server1.database1:

select T1.id
from server1.database1.dbo.table1 T1
inner join server2.datbase2.dbo.table2 T2
on T1.id = T2.id

Я унаследовал этот код от кого-то другого, и мне было интересно, есть ли лучший (более быстрый) способ сделать это? Я имею в виду, есть ли способ создать точную копию копии server2.databse2.dbo.table2 на server1.database1.dbo, которая обновляется и поддерживает себя в реальном времени?

Стандартный выпуск Microsoft SQL Server (64-разрядная версия) версии 10.0.4000.0

РЕДАКТИРОВАТЬ: На самом деле, что я делаю сейчас в этом сценарии, так это, если могу, я использую открытый запрос и with (nolock), чтобы получить наименьший набор данных, который мне нужен, и я помещаю его во временную таблицу. И я настроил столбец «id» как уникальный кластеризованный индекс, чтобы он мог быстро присоединиться ко всему, к чему я присоединяюсь на сервере 1.


person Trevor    schedule 22.12.2011    source источник
comment
Эти базы данных очень далеко друг от друга, или откуда вы запрашиваете, находится далеко от обеих баз данных или от обеих?   -  person JeffO    schedule 23.12.2011


Ответы (2)


В SQL Server у вас есть три основных варианта для вашего сценария (в зависимости от вашей версии и редакции):

Доставка журналов: простота настройки и обслуживания. ; однако база данных «реплика» не будет работать в режиме реального времени и будет только актуальной, как ваша последняя резервная копия журнала транзакций с исходного сервера.

Зеркальное отображение: очень близко к реальному времени. , но из базы данных «реплика» нельзя читать напрямую; вместо этого необходимо будет периодически создавать моментальные снимки.

Репликация: Трудно управлять и поддерживать, но, скорее всего, даст вам самую актуальную версию данных в вашей базе данных «реплика».

Если у вас нет проблем с производительностью или стабильностью связанного сервера, он будет придерживаться этого подхода, если вы не готовы потратить много времени и усилий на реализацию одного из этих трех подходов.

person Michael Fredrickson    schedule 22.12.2011

Вы можете создать представление таблицы, оно будет нередактируемым, но будет захватывать точную таблицу без необходимости всегда обращаться к другой базе данных. Однако вам все равно понадобится другая таблица.

person Sam Sussman    schedule 22.12.2011