У меня есть концептуальный вопрос.Как скопировать данные из одной базы данных в другую?
У меня есть две базы данных, которые имеют одинаковую структуру. В одной базе данных уже содержится много данных. Эти данные должны быть перенесены в другую базу данных через Select
и Insert
.
Как я могу выполнить эту миграцию данных с максимальной производительностью?
Мой первый подход состоял в сортировке всех таблиц в списке, где таблицы, содержащие внешние ключи, будут храниться за ссылочными таблицами. Но с этим решением невозможно начать параллельную обработку.
Вторая идея состояла в том, чтобы создать пользовательский тип, который содержит имя табуляции и имена таблиц ссылочных таблиц и флаг bool, который хранит, были ли скопированы данные в таблице. Этот тип сохраняется для каждой таблицы в списке. Затем я запускаю новый поток, который проверяет, прежде чем копировать, были ли созданы таблицы ссылок для каждой таблицы. Если нет, я выполняю Thread.Sleep()
, после чего я проверю его снова.
Есть ли хорошо работающий подход к этой проблеме?
Любые предложения будут полезны.
EDIT: Старая база данных - база данных базы данных SQL. Новая база данных представляет собой базу данных сервера ms sql.
Большинство систем баз данных имеют механизм [объемного копирования] (https://msdn.microsoft.com/en-us/library/7ek5da1a (v = vs.110) .aspx). Используйте это. – Heinzi
SELECT/INSERT - самый худший способ сделать это. Я бы настоятельно рекомендовал использовать Database-Tools для этого. Возможно, «Лучшим местом для этого было бы« Администраторы базы данных ». http://dba.stackexchange.com/ –
Проблема заключается в том, что старая база данных является базой данных sqlbase, а новая - сервером ms sql. Итак, теперь я разрабатываю один из этих «Database-Tools» – Bambuk