2012-06-21 2 views

ответ

3

В то время как каждая из которых сформирована GUID, не гарантируется быть уникальным, общее количество уникальных ключей (2128 или 3,4 × 1038) настолько велика, что вероятность того же числа генерируются два раза очень мала.

Вы можете узнать больше информации об этом here.


Возможное решение, чтобы избежать дублирования GUIDs (если вы все еще хотите один), чтобы использовать UNIQUE constraint.

4

Хотя каждый сгенерированный GUID не является уникальным, общее количество уникальных ключей (2^128 или 3,4 × 10^38) настолько велико, что вероятность того, что одно и то же число генерируется дважды, очень мало. Например, рассмотрим наблюдаемую вселенную, которая содержит около 5 × 10 22 звезды; каждая звезда может иметь 6,8 × 10^15 универсально уникальных GUID.

От Wikipedia.

1

Гарантируется, что они будут уникальными, если вы используете NEWSEQUENTIALID() для его создания. Тем не менее, Microsoft утверждает, что [1], что он будет уникальным и

никакой другой компьютер в мире не будет создавать дубликат этого GUID значения.

Википедия состояний [2], что

Microsoft добавила функцию на языке Transact-SQL под названием NEWSEQUENTIALID(), [8], который генерирует идентификаторы GUID, которые гарантированно увеличению стоимости, но может начинаться с меньшим номером (по-прежнему гарантировано уникальным), когда сервер перезагружается

Короче говоря: на практике они собираются быть уникальным.

[1] http://msdn.microsoft.com/en-us/library/ms190215(SQL.105).aspx
[2] http://en.wikipedia.org/wiki/Globally_unique_identifier#Sequential_algorithms

+3

** Нет, они не так! ** У вас еще есть очень небольшой шанс дублей ... каждый Guid производства 'NEWSEQUENTIALID()' не гарантируется быть уникальным ** на этом компьютере ** только ..... –

+0

@marc_s Я предположил, что этот вопрос задавался в контексте одного сервера. Тем не менее, я бы не назвал возможность дублирования идентификатора, когда-либо имевшего место на другом компьютере, и это было важно для вашего случая использования значительно меньше, чем «тонкий». Вот почему я говорю, что они будут уникальными на практике, и я бы не стал советоваться с использованием GUID, потому что они гарантированы 99,99999%, а не 100%. :) – Rob

Смежные вопросы