Un journal de vue matérialisée (MV) peut être utilisé pour permettre à un MV d'effectuer une actualisation rapide qui ne modifie que les données modifiées. Cependant, diverses conditions empêchent le MV d'utiliser le journal et nécessitent donc une actualisation complète. Oracle a implémenté une actualisation atomique complète en tant que suppression et insertion de chaque enregistrement. Il le fait même s'il n'y a finalement aucun changement dans les données.
Existe-t-il un moyen de rendre cette réplication intelligente en ce qui concerne la génération de redo ? Un MERGE suivi d'un DELETE nécessite d'interroger la source deux fois. Vaut-il la peine de collecter les données en bloc pour effectuer une fusion et une suppression en bloc? Y a-t-il une meilleure façon?
Mettre à jour:
J'ai exploré l'utilisation d'une table temporaire globale comme zone de transit. Bien qu'ils utilisent moins de la moitié de la répétition, ils en utilisent encore beaucoup.
insert
s. Cela correspond étroitement aux résultats que je vois et est meilleur mais pas aussi bon que je le souhaiterais.
append
indice) ne sont pas des conditions idéales pour réduire le rétablissement - j'ai effectué des tests pour montrer ce que je veux dire. Publié comme réponse car ils ne
insert
les opérations génèrent beaucoup moins d'annulation que les opérationsdelete
ouupdate
(presque aucune en fait). Avoir plusieurs gtts pour éviter des opérations coûteuses pourrait être une bonne approche