Концепция сегментирования в SQL Azure является одним из наиболее рекомендуемых вариантов для преодоления ограничения размера БД в 50 ГБ, которое есть на данный момент. Ключевой стратегией в сегментировании является группировка связанных записей, называемых атомарными единицами, вместе в одном сегменте, чтобы приложению для извлечения данных требовалось запрашивать только один экземпляр SQL Azure.
Однако в таких приложениях, как приложения для социальных сетей, группировка атомарной единицы в один сегмент нетривиальна из-за взаимосвязанности сущностей и записей. какой может быть рекомендуемый подход, основанный на таком сценарии?
Также в сегментированной БД, какие первичные ключи следует использовать для таблиц? Большое целое или GUID. В настоящее время я использую столбцы BIGINT Identity, но если бы данные по какой-то причине должны были быть объединены, это было бы проблемой из-за конфликтов между значениями в разных осколках. я слышал, что некоторые люди рекомендуют GUID (UniqueIdentifier), но я опасаюсь, как это может повлиять на производительность. Индексирование локальных серверов SQL со столбцами UniqueIdentifier невозможно, и мне интересно, как SQL Azure реализует аналогичные стратегии, если бы я использовал столбец UniqueIdentifier.