Наша команда должна вставить в нашу базу данных SQL Server 2008 огромный объем данных. Мы ищем хорошее решение. Теперь мы придумали один, но я сомневаюсь в этом, просто потому, что он не чувствует себя хорошо. Поэтому я спрашиваю, если это похоже на хорошее решение. Дополнительный вызов заключается в том, что это одноранговая реплицированная база данных на 4 серверах! :)
Представьте, что у нас есть 1 миллион строк для вставки
Является ли это хорошим решением, мы можем столкнуться с проблемами параллелизма, иметь слишком большие транзакции и т. Д.
у вас появятся проблемы (насколько я могу видеть, так что могут быть вещи, которые я пропускаю!), если база данных находится в сети, и пользователи могут вставлять строки в эту таблицу. Увеличение значения идентификатора для новых строк на метауровне просто означает, что следующая строка, вставленная системой, будет использовать это число, поэтому, если вы столкнетесь с ней на 1 миллион, это означает, что вы зарезервировали эти номера спереди.
Столбцы идентичности «хороши», но имеют побочный эффект, который они не могут передавать. Поэтому, если вам нужно перенести данные в другой БД, поймите, что вам, вероятно, придется скорректировать вставленные данные в соответствии с базой данных, в которую вы ее вставляете (так как это область данных, которая означает, что поля идентичности могут сталкиваться со строками, уже находящимися в таблице ).
Если это одноразовое дело, это может сработать. Если вы планируете регулярно это делать, я бы посмотрел на более высокоуровневую систему миграции, в которой вы переносите данные на новые значения идентификации или используете guid с NEWSEQUENTIALID (), чтобы получить надлежащие проверенные индексы, а также уникальные, переносимые идентификаторы ,