Журнал с материализованным представлением (MV) может использоваться для того, чтобы позволить MV быстро обновлять данные, изменяя только измененные данные. Однако различные условия не позволяют MV использовать журнал и поэтому требуют полного обновления. Oracle реализовал полное атомарное обновление в виде удаления и вставки каждой записи. Это происходит даже в том случае, если в конечном итоге данные не изменяются.
Есть ли способ сделать эту репликацию разумной в отношении генерации повторов ? MERGE, за которым следует DELETE, запрашивает источник дважды. Стоит ли массово собирать данные, чтобы выполнить BULK MERGE и DELETE? Есть ли способ лучше?
Обновить:
Я исследовал использование глобальной временной таблицы в качестве промежуточной области. Хотя они используют меньше половины повторов, они все равно используют много.
insert
s. Это близко соответствует результатам, которые я вижу, и лучше, но не так хорошо, как хотелось бы.
append
подсказок) не являются идеальными условиями для уменьшения повторения - я провел несколько тестов, чтобы показать, что я имею в виду. Опубликовано в качестве ответа, потому что они не вписываются в комментарий
insert
ops генерируют гораздо меньше откатов, чемdelete
илиupdate
ops (практически ни одного). Хорошим подходом может быть наличие нескольких gtts, чтобы избежать дорогостоящих операций