Главная » Microsoft SQL Server, Базы данных » Основные концепции распределенных запросов

0

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

Puc. 15.1. Связывание серверов представляет собой одностороннее подключение и не зависит от регистрации серверов в Management Studio. На данной диаграмме экземпляр А видит экземпляр Б как связанный сервер, поэтому сервер А может получить доступ к данным сервера Б

Связывание — это одностороннее конфигурирование (рис. 15.1). Если сервер А подключается к серверу Б, то это значит, что первый из них знает, как получить доступ к второму. Все время, пока сервер Б является доступным, сервер А для него является обычным пользователем.

Если связывание серверов является для вас новой концепцией, вы можете легко ее перепутать с регистрацией серверов в Management Studio. Как показано на рис. 15.1, Management Studio связывается с серверами как обычное клиентское приложение. В противоположность этому связывание серверов позволяет серверу А напрямую обращаться к серверу Б.

Связи могут быть установлены как в утилите Management Studio, так и в коде Т-SQL. Последний метод имеет преимущество возможности повторения подключения, если соединение будет неожиданно разорвано. В то же время создание подключения в коде Т-SQL требует большей работы.

Связываемый сервер может быть экземпляром SQL Server, либо другим источником данных с провайдером OLE DB, либо с драйвером ODBC. Распределенные запросы могут как извлекать данные, так и изменять их с помощью инструкций INSERT, UPDATE и DELETE (разумеется, в соответствии с требованиями провайдера OLE DB или драйвера ODBC).

Запросы SQL Server могут ссылаться на внешние данные с помощью обращения к предварительно сконфигурированному и подключенному серверу или определять подключение в самом коде запроса.

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

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

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

Дополнительная Существует множество способов распределения данных. Вы можете использо- информация вать репликацию (подробнее об этом — в главе 39) либо настраивать отдельный компьютер как сервер отчетности (подробнее об этом — в главе 52).

Доступ к базе данных локального сервера

Когда осуществляется доступ к другой базе данных того же сервера, данные обрабатывает одно и то же ядро SQL Server. Таким образом, несмотря на то, что данные находятся вне текущей базы данных, запрос на самом деле не является распределенным.

Запрос SQL Server может осуществлять доступ к другой базе данных на том же сервере, обращаясь к таблице с использованием имени базы данных:

База_данных. Схема . Имя_Объекта

Поскольку база данных находится на том же сервере, его имя использовать не обязательно. Имя схемы может быть заменено именем владельца объекта. Обычно таблицы принадлежат владельцу схемы (dbo). Если это на самом деле так, то часть dbo можно опустить:

USE СНА2;

SELECT LastName, FirstName FROM OBXKit e s.dbo.Cont act;

Все листинги, приведенные в настоящей главе, находятся в файле chis.sql. ЩцТ?”В Также существует сценарий преобразования базы данных Cape Hatteras Adventures чУДСета CHA2_Convert. sql, использующий распределенные запросы для перемеще- ния данных из Access и Excel в SQL Server.

Приведенный выше запрос является функциональным эквивалентом следующего:

SELECT LastName, FirstName FROM OBXKites..Contact;

Будет получен следующий результат (в сокращенном виде):

LastName                      FirstName

Adams       Terri

Andrews   Ed

Источник: Нильсен, Пол. Microsoft SQL Server 2005. Библия пользователя. : Пер. с англ. — М. : ООО “И.Д. Вильямс”, 2008. — 1232 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии