Федерации SQL Azure и идентификация атомных единиц - PullRequest
1 голос
/ 24 февраля 2012

Я начал работу над своим первым приложением Azure, и я многому учусь по ходу работы.Одной из функций, которые я недавно обнаружил, была федерация в SQL Azure, по сути, реализация шардинга SQL Azure, поэтому мы можем масштабировать горизонтально.

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

Я мог бы просто использовать UniqueIdentifier, но я прочитал, что разделить это может быть больно.Я также не слишком уверен в том, с какими другими проблемами производительности я мог столкнуться, используя GUID в качестве моего Первичного ключа для федеративных таблиц.

Я использую это с Entity Framework, но не дошел до точкисделать эту федерацию дружественной еще.Из того, что я могу сказать, это не намного сложнее, чем выполнить некоторый код для выбора федерации перед написанием запроса LINQ, но я перейду этот мост, когда доберусь до него.

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

Любой совет будет принят с благодарностью.

Ответы [ 2 ]

2 голосов
/ 25 февраля 2012

Я использую GUID при использовании SQL Azure Federation, это почти лучший выбор при распределении данных.Предполагая, что если вы используете идентификацию во многих членах федерации, это приведет к дублированию вашего основного значения.Когда вам нужно объединить данные обратно или заархивировать, как вы поступаете с этими записями.

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

0 голосов
/ 25 февраля 2012

Так что я не могу говорить с вопросом EF.Но я не могу комментировать идею использования Uniqueidentifier в качестве типа ключа.Это, на мой взгляд, лучший выбор.UniqueIdentifier на самом деле очень легко разделить на ... по той причине, что люди думают, что это сложно, они забывают, что такое UniqueIdentifier.GUID, который мы все знаем и любим, является шестнадцатеричным представлением 128-битного целого числа.Это означает, что мы можем использовать стандартные целочисленные операции с ним, и, таким образом, с ним на самом деле так же легко работать, как с Int (aut number), который вы знаете и любите.

Хотя речь идет не о федерациях SQL Azure (речь идет о WindowsХранилище Azure). В этом моем блоге, посвященном использованию типа GUID для шардинга, должно быть все, что вам нужно знать.

http://www.syringe.net.nz/CommentView,guid,cebe3e19-85e6-4d5b-bc24-afb6f66aaeb1.aspx

...