"A K" wrote ...
Добрый день!

Возможность выполнять EXECUTE STATEMENT на другой базе
позволяет легко реализовать надежную схему односторонней
онлайн репликации.

Но, вся засада в том, что коннект к базе открывается
каждый раз при выполнении оператора. Мы собрали у себя тестовый пример.
Изменения без репликации проходят на базе за 20 сек.
А те же изменения, но с их репликацией на другую базу в триггерах
уже за 4 мин 22 сек. Т.е. замедление в 13 раз.

   Попробуйте выталкивать изменения не по каждому I\U\D а по коммиту
тр-ции. Накапливать изменения можно в GTT. Если же полная синхронность
не требуется, то можно выталкивать изменения ещё реже.

Базы идентичны по структуре. Лежат на одном и том же сервере.
Используется суперсервер.

   Какой протокол для внешнего коннекта используется ? Для локального
сервера лучше всего локальный протокол.

Такое предложение: чтобы можно было открыть из одной БД
(например, внутри триггера на подключение к базе) коннект к другой
базе и затем использовать его для выполнения операций
EXECUTE STATEMENT.

   Внешние соединения кешироваться будут, но точно не в 2.5.1

--
Хорсун Влад



Ответить