Основные сведения о федеративных серверах баз данных
Чтобы достичь высокого уровня производительности, необходимого для работы крупных веб-узлов, в многоуровневой системе вычислительная нагрузка в каждом уровне распределяется между несколькими серверами. SQL Server распределяет обработку базы данных в группе серверов посредством горизонтального секционирования данных в базе данных. Такие серверы управляются независимо друг от друга, но сообщаются между собой для обработки запросов к базе данных от приложений. Такая взаимодействующая группа серверов называется федерацией.
Производительность федеративной базы данных может достигать очень высокого уровня только за счет того, что приложение отправляет инструкции SQL именно тому серверу, который содержит наибольшее количество данных, необходимых для выполнения этой инструкции. Такой процесс называется выровненным размещением инструкций SQL с данными, которые необходимы для ее выполнения. Такой подход присущ не только федеративным серверам, он также применяется в кластеризованных системах.
Несмотря на то что для приложений федерация серверов выглядит как единый сервер базы данных, существуют определенные внутренние различия в реализации уровня служб базы данных, которые приведены в следующей таблице.
Уровень одиночного сервера |
Уровень федеративного сервера |
---|---|
Существует один экземпляр производственного сервера SQL Server. |
Существует один экземпляр SQL Server на каждом сервере-участнике. |
Производственные данные хранятся в одной базе данных. |
На каждом сервере-участнике имеется база данных участника. Данные распределены между этими базами данных. |
Каждая таблица обычно представляет собой отдельную сущность. |
Таблицы исходной базы данных горизонтально секционированы по таблицам на серверах-участниках. Таблица существует в базе данных каждого из участников, а распределенные секционированные представления представляют данные так, будто на каждом из них содержится полная копия исходной таблицы. |
Все соединения производятся с одним сервером, и все инструкции SQL обрабатываются одним и тем же экземпляром SQL Server. |
Уровень приложения должен уметь выравнивать инструкции SQL на том сервере, который содержит наибольший объем данных, необходимых для выполнения инструкции. |