Se puede usar un registro de vista materializada (MV) para permitir que un MV realice una actualización rápida que solo modifica los datos que han cambiado. Sin embargo, varias condiciones impiden que el MV use el registro y, por lo tanto, requieren una actualización completa. Oracle implementó una actualización completa atómica como una eliminación e inserción de cada registro. Lo hace incluso si finalmente no hay cambios en los datos.
¿Hay alguna manera de hacer que esta replicación sea inteligente con respecto a la generación de rehacer ? Un MERGE seguido de DELETE requiere consultar la fuente dos veces. ¿Valdría la pena recopilar datos de forma masiva para hacer una BULK MERGE y DELETE? ¿Hay una mejor manera?
Actualizar:
Exploré el uso de una tabla temporal global como área de preparación. Aunque usan menos de la mitad del rehacer, todavía usan demasiado.
insert
s. Esto coincide estrechamente con los resultados que estoy viendo y es mejor, pero no tan bueno como me gustaría.
append
sugerencia) no son condiciones ideales para reducir el rehacer: he realizado algunas pruebas para mostrar lo que quiero decir. Publicado como respuesta porque no cabe en un comentario
insert
ops generan mucho menos de deshacer quedelete
oupdate
ops (casi ninguno, de hecho). Tener múltiples gtts para evitar operaciones costosas podría ser un buen enfoque