On 01.07.2011 19:47, A K wrote:

Попробуйте выталкивать изменения не по каждому I\U\D а по коммиту
тр-ции.

А что это изменит? Все равно каждый EXECUTE STATEMENT будет
открывать-закрывать подключение к БД. Только что "подвисать" будет не
каждая операция, а комит транзакции.



Транзакций существенно меньше чем CRUD операций как правило.

Собственно именно так и нужно делать - применять изменения в удаленную БД на коммите транзакции. Потому что при откате транзакции изменения в другую базу не попадут, что как правило и нужно. В любом случае без журнала транзакций, в который пишутся изменения, не обойтись. Требуемые триггеры для записи в журнал транзакции пишутся автогенерацией через тот же EXECUTE STATEMENT на основе данных системных таблиц.

Как пример можно посмотреть этот проект http://fibre.sourceforge.net/. Там более сложный вариант реализован - инкрементальной оффлайн репликации на базе журнала транзаций.

Ответить