Дифференциальное обновление с SQL Server - PullRequest
2 голосов
/ 16 июня 2011

У меня есть несколько огромных (по 2 ГБ каждая) базы данных в формате Firebird. Каждые несколько недель эти данные должны синхронизироваться с MS SQL Server. В настоящее время это длительный процесс, который просто усекает таблицы назначения, а затем копирует каждую строку с помощью Database Workbench (СУБД с несколькими БД). Есть ли какой-нибудь умный способ сделать частичное или дифференциальное обновление, которое ускорило бы процесс или потребовало бы меньше прокачки данных между серверами?

1 Ответ

1 голос
/ 16 июня 2011

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

Это, конечно, должно быть сделано для каждой таблицы.

Мы использовали аналогичный метод, использующий данные SQL OLTP в качестве источника в DWH, работает очень хорошо!

...