Экспорт (0) Печать
Развернуть все

Федерация: рекомендации и ограничения

Обновлено: Январь 2015 г.

В этом разделе содержатся общие рекомендации и ограничения для федераций в службах База данных SQL Microsoft Azure. Общие рекомендации и ограничения рассматриваются в следующих разделах.

ImportantВажно!
Текущая реализация федераций будет упразднена вместе с уровнями служб Web и Business. Рассмотрите использование компонента эластичного масштабирования, чтобы создать сегментированное горизонтально масштабируемое решение в базе данных SQL Azure. Чтобы попробовать это, см. раздел Приступая к работе с предварительной версией эластичного масштабирования базы данных Azure SQL.

Федерации могут содержать как федеративные, так и ссылочные таблицы. Федеративная таблица создается с использованием предложения FEDERATED ON и содержит столбец, связанный с ключом распределения для включающей федерации. Ссылочная таблица — это таблица в рамках федерации, созданная без предложения FEDERATED ON и не имеющая специальной связи с ключом распределения федерации. Дополнительные сведения о создании таблиц см. в разделе CREATE TABLE.

Федеративные таблицы имеют следующие ограничения.

  • Столбец федерации федеративной таблицы может содержать только данные, которые соответствуют значениям от range_low (включительно) до range_high (невключительно) члена федерации.

  • Тип данных столбца федерации должен точно соответствовать типу, заданному в определении федерации.

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

  • Значения в столбце федерации не могут обновляться значениями, находящимися за пределами диапазона члена федерации.

  • Столбец федерации не может быть материализованным или нематериализованным вычисляемым столбцом.

  • Индексированные представления не поддерживаются в членах федерации.

  • Столбцы федерации не могут допускать значения NULL.

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

  • Таблицы, созданные с помощью предложения FEDERATED ON, можно удалять обычным образом. Также можно воспользоваться инструкцией ALTER TABLE для изменения всех свойств федеративной таблицы, за исключением таких атрибутов федерации, как ключ федерации. Чтобы преобразовать ссылочную таблицу в таблицу федерации или таблицу федерации в ссылочную таблицу, необходимо создать новые таблицы с требуемыми свойствами, а существующую таблицу удалить.

  • Если таблица отмечена как STATISTICS_NORECOMPUTE, то операции федерации, такие, как SPLIT, не приводят к недействительности статистики или ее пересчету. Это может вызвать проблемы с планом выполнения после таких операций повторного секционирования, как SPLIT.

  • Федеративные члены НЕ поддерживают свойство идентификаторов.

  • Федеративные элементы не поддерживают типы данных timestamp и rowversion.

Все общие метаданные таблиц для федеративных таблиц представлены в стандартных системных представлениях. Свойства федераций доступны в представлении sys.federated_table_columns.

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

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

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

После операции SPLIT или DROP пространственные индексы остаются согласованными и неизменными в целевых членах федерации.

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

После операции SPLIT или DROP индексы hierarchyid остаются согласованными и неизменными в целевых членах федерации.

Соединение с федерацией устанавливается с помощью инструкции USE FEDERATION. Эта инструкция автоматически направляет подключение к соответствующему члену в федерации, устраняя необходимость знать имя физической базы данных при обращении к данным. Указание ключа распределения федерации и значения позволит установить соединение с соответствующей рядовой базой данных в федерации.

Проверка подлинности и авторизация для базы данных, содержащей федерацию, выполняется как обычно. Имена входа и пользователи определяют возможность подключения, а группирование субъектов управляется ролями. Однако субъекты базы данных, содержащей федерацию, действуют только в пределах корневой базы данных федерации и не применяются автоматически к членам федерации. Дополнительные сведения о пользователях и ролях см. в разделе Управление федерациями баз данных (база данных SQL Azure).

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

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

После выполнения операций повторного секционирования, например SPLIT или DROP, соединения прерываются. Это означает, что свойства соединений, например параметры SET, параметры уровня изоляции транзакций или переменные также сбрасываются. Операция SPLIT создает новую физическую базу данных, т. е. приведенные ниже свойства Transact-SQL невозможно сохранять в операциях SPLIT.

 

Transact-SQL Ограничения поддержки в база данных SQL Поддержка в базах данных с федерациями

Типы данных timestamp и rowversion

база данных SQL незафиксированные значения timestamp и rowversion для текущей базы данных (DBTS) могут не сохраниться при переходе на другой ресурс.

Типы данных timestamp и rowversion не поддерживаются в членах федерации.

Функции, связанные с типами данных timestamp и rowversion, например @@dbts, возвращают значения при отсутствии timestamp и rowversion в данной базе данных.

SYSUTCDATETIME(),SYSDATETIMEOFFSET(),SYSDATETIME(),getdate(), getutcdate()current_timestamp

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

Поддерживаются с теми же ограничениями в операциях перераспределения.

DATABASE_PRINCIPAL_ID()

Идентификаторы SID участников гарантированно одинаковые для данного имени участника у нескольких членов федерации и корня федерации. Однако идентификаторы участников могут изменяться после операций повторного секционирования, например, DROP.

Свойство IDENTITY в столбцах

Свойство IDENTITY не поддерживается в членах федерации. Функции, связанные с идентификаторами, например IDENT_CURRENT, IDENT_SEED, IDENT_INCR, SCOPE_IDENTITY, всегда возвращают значение NULL, поскольку в членах федерации не может быть столбцов идентификаторов.

OBJECT_ID и связанные функции, работающие с определяемыми пользователем объектами, object_id(…), object_name(object_id), type_id(…), type_name(type_id)

Object_id любого объекта может изменя��ься после операции перераспределения, например, DROP, для определяемых пользователем объектов.

Поддерживаются все параметры баз данных База данных SQL Azure, однако изменение значения параметра корневой базы данных федерации не приведет к изменению параметра какого-либо из членов федерации.

См. также

Корпорация Майкрософт проводит интернет-опрос, чтобы выяснить ваше мнение о веб-сайте MSDN. Если вы желаете принять участие в этом интернет-опросе, он будет отображен при закрытии веб-сайта MSDN.

Вы хотите принять участие?
Показ:
© 2015 Microsoft