Массовый перенос данных из SQL в SQL (поддержание отношений) - PullRequest
0 голосов
/ 21 февраля 2011

Таким образом, в настоящее время у нас есть требование извлекать данные из 3 отдельных систем в 3 «промежуточные базы данных».Эти промежуточные базы данных используют один и тот же макет таблицы.

После того, как все 3 промежуточные базы данных заполнены, инструмент извлечения берет данные, проверяет их и перемещает в «окончательную» базу данных с сохраненными связями.

В настоящее время существует около 8 таблиц, каждая из которых содержит ~ 100 тыс. Строк.Так что не очень много данных.Однако для передачи требуется довольно много времени.

Примером данных могут быть сообщения в блоге в тегах с такими таблицами:

- Blog Post
-- ID

- Tags
-- ID

- Blog Post Tags
-- Blog ID
-- Tag ID

Так что при извлечении данных нам нужносохранить отношения, даже если ID изменится.поэтому Insert (if not exists) Post, Get ID, Insert (if not exists) Tag, Get ID, Insert Blog Post Tag, with ID's.

В настоящее время я использую объекты LLBLGen и выбираю лот из 10000 Blog Post Tags, проверяя, существует ли Post, если нет insert и то же самое с tag.Но из-за огромного количества запросов на Blog Post Tag это занимает довольно много времени.

Другой способ, который я пробовал, это Do all Blog Posts, Do All Tags, тогда делайте все Blog Post Tags.Однако это не позволяет повторно запускать задачу в случае сбоя (так как предыдущий метод будет удалять каждые Blog Post Tags при передаче.

Мы используем C # 3.5, SQL 2008, LLBLGen 2.6 (однакоможет изменить это).

Как лучше всего это сделать?

1 Ответ

0 голосов
/ 21 февраля 2011

Лично я бы посмотрел на то, чтобы что-то делать с SSIS или использовать экспорт в файл и импорт через массовую копию.Это были бы ваши лучшие ставки на скорость.Еще одна вещь, которую вы могли бы рассмотреть, это настроить доставку журналов, чтобы синхронизировать вашу промежуточную базу данных с живой, но я не уверен, что это будет соответствовать вашим требованиям.

--- Извините, перечитав ваше сообщение, я понял, чтоотдельные системы могут не быть серверами SQL ... ---

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