Лучший способ сделать SQL Server удаленного запроса? - PullRequest
0 голосов
/ 23 декабря 2011

У меня есть два экземпляра 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 Standard Edition (64-разрядная версия) Версия 10.0.4000.0

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

Ответы [ 2 ]

2 голосов
/ 23 декабря 2011

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

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

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

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

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

0 голосов
/ 23 декабря 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...