Какова цель последовательного уникального идентификатора в ПК MS SQL?

StackOverflow https://stackoverflow.com/questions/184359

Вопрос

Я знаю, что первичные ключи, основанные на Guids, не имеют наилучшей производительности (из-за фрагментации), но они глобально уникальны и допускают сценарии репликации.

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

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

Что мне здесь не хватает?

Это было полезно?

Решение

То, что обычно называют последовательными направляющими в SQL Server 2005 (генерируется функцией NEWSEQUENTIALID ()), является попыткой преодолеть проблемы с обычными направляющими.

Они все еще уникальны, но также всегда восходят. Это означает, что они могут использоваться для репликации. и имеют гораздо лучшую производительность вставки, чем традиционные GUID.

Единственным недостатком является то, что они не являются "безопасными" потому что можно угадать следующий последовательный гид.

http://msdn.microsoft.com/en-us/library /ms189786.aspx

Другие советы

Использование последовательных направляющих гарантирует, что вы всегда используете значение, превышающее последнее значение. Для индексированного поля это важно. Вместо того, чтобы вставлять произвольно по всему спектру, вы всегда вставляете в конце последней «страницы» данных, что приводит к значительному уменьшению разбиения страниц, особенно в случае, когда ваш столбец uniqueidentifier также является вашим кластеризованным индексом.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top