Каков наилучший способ перемещения данных между базами данных postgresql и SQL Server - PullRequest
1 голос
/ 06 июня 2011

Если бы у нас была одна и та же схема базы данных в базе данных на Postgresql и SQL Server (таблица, первичные ключи, индексы и триггеры одинаковы), что было бы наилучшим способом перемещения данных из одной базы данных в другую?В настоящее время у нас есть одна внутренняя программа .NET, которая выполняет следующие действия через два соединения ODBC:

  1. читает строку из таблицы базы данных источника 1
  2. создает оператор вставки
  3. записать строку в таблицу базы данных назначения 1
  4. Перейти к 1, если в таблице больше строк
  5. Перейти к следующей таблице в базе данных и перейти к 1

Излишне говорить: это очень медленный процесс, и мне было бы интересно, если бы было лучшее / более быстрое решение для этого?

Ответы [ 2 ]

2 голосов
/ 06 июня 2011

Если это однократная миграция, есть инструмент, который вы получаете вместе с SQL Server, который позволяет перемещать данные между базами данных (сейчас я не на Windows-машине, поэтому не могу сказать, как она называется что-то вроде инструмента импорта / экспорта).

Если это постоянная синхронизация, вы можете взглянуть на среду MS Sync, которая прекрасно работает с SQL Server и Postgres.

1 голос
/ 22 июля 2016

Ответ - массовый экспорт и массовая загрузка.Вы можете пойти намного быстрее, используя команду копирования в PostgreSQL https://www.postgresql.org/docs/current/static/sql-copy.html, чтобы вывести данные из таблиц в формате CSV, а затем использовать массовую вставку в SQLServer Импорт файла CSV в SQL Server .Основное правило - использовать параллелизм для процесса.Проверьте, можете ли вы загружать данные в CSV параллельно с SQL Server, и если у вас много таблиц, вы также можете иметь параллелизм на уровне отдельных таблиц.Кстати, загрузка или миграция данных построчно - один из самых медленных способов.

...