Почему кто-то должен использовать Identity Range Management с SQL Server - PullRequest
3 голосов
/ 26 мая 2011

Когда я начал работать над репликацией несколько лет назад, я был убежден, что управление Identity Range Management было доступно только в последних SQL Server для устаревших целей, поскольку до SQL Server 2000 поле типа GUID не существовало, и большинство первичные ключи были построены на полях автоинкремента.

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

Я только что прочитал здесь, что Управление диапазоном идентичности по-прежнему предлагалось по умолчанию в SQL Server 2008 , за которым следует этот другой вопрос о передовых методах и управлении диапазоном идентичности , где достигается # mwolfe02 вывод, что в некоторых ситуациях пользователи не могут вставлять данные в базу данных, если им не предоставлено право владельца базы данных!

Тревожно, не так ли? Итак, за исключением устаревших баз данных, почему кто-то должен использовать управление Identity Range Management с SQL-серверами? В более общем смысле, зачем кому-то продвигать какой-либо заранее определенный метод автоинкрементной идентификации в базе данных?

1 Ответ

1 голос
/ 02 июня 2011

Я полагаю, что одной из причин для продолжения использования значений идентификаторов является недостаток использования идентификаторов GUID в качестве первичных ключей в базе данных, которые описаны здесь идентификаторы GUID в качестве ПЕРВИЧНЫХ КЛЮЧЕЙ .

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

Я бы также начал свой диапазон идентификаторов с наименьшего числа для целого числа (от -2 147 483 648 до 2 147 483 647), поскольку многие значения не используются, поскольку столбцы целых идентификаторов чаще, чем не начинаются с одного. Даже если у вас задействовано 20 серверов, это все равно дает вам широкий диапазон значений для использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...