Рассылка закрыта
При закрытии подписчики были переданы в рассылку "Вопросы и ответы по MS SQL Server" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
MS SQL Server - дело тонкое...
Информационный Канал Subscribe.Ru |
#162<< #163 |
СОДЕРЖАНИЕ
Планирование репликации с использованием identity По материалам статьи: Michael R. Hotek " Architecting replication with identity columns"
Автор статьи очень часто встречает вопросы о том, что использование поля identity порождает проблемы в репликации.
Но он убеждён, что колонка Identity вполне может быть использована в репликации, просто необходимо выполнить
некоторое предварительное планирование, наряду с установкой редко используемой опции. Эта статья описывает хороший
метод, который автор использовал несколько лет, и который позволил ему успешно использовать колонки identity.
create table mytable Таким образом, Вы сообщите серверу баз данных, что необходимо отключить код, который повторно пересчитывает столбец identity, когда агент репликации вставляет данные в столбец identity. При этом сохраняются диапазоны identity, которые были установлены. Недостаток этой опции состоит в том, что в SQL Server 2000 Вы не можете добавлять эту опцию путём изменения, вносимого в публикуемую таблицу. Встречаются некоторые предложения по изменению для этого системных таблиц, которые автор не хочет рассматривать в рамках этой статьи. Не пробуйте устанавливать эту опцию путём изменения системных таблиц, если Вы не хотите потратить ваше время на восстановление базы данных из резервной копии, поскольку это может привести к повреждению базы данных. Наиболее безболезненным способом включения опции "not for replication" является исполнение представленного ниже алгоритма:
1) Переименуйте таблицу, в которую нужно добавить опцию.
Теперь, когда мы выяснили, как предотвратить пересчёт столбца identity при работе агента репликации, остался
только один вопрос: как разделить диапазоны значений колонки identity для разных баз данных. Есть очень простой
метод, которым автор пользовался несколько лет.
Основная идея состоит в том, чтобы при добавлении новых баз данных в схему репликации, разбивать диапазоны
identity на чётные/нечётные, которые в свою очередь разбивать на положительные/отрицательные. Когда Вы включаете
в систему репликации 4 базы данных, Вы просто разбиваете каждый диапазон напополам. Вы продолжаете это разбиение,
по мере добавления баз данных. Для большого количества баз данных, такой алгоритм разбиения может стать
проблематичным. Для случаев, когда количество баз превышает 500, автор просто использует для identity тип данных
decimal, потому что он обеспечивает более широкий диапазон значений, что облегчает разделение диапазонов identity.
Статьи на русском языке
Варианты использования (Use Case)
Новые и обновлённые технические статьи Microsoft
HOW TO: Process Results in an Embedded SQL Application
Where Do I Want To Go Today? - From the Field 2
Самые популярные темы недели
Ваше мнение об упражнениях SELECT на http://sql.ipps.ru
de
|
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||