Un registro di visualizzazione materializzata (MV) può essere utilizzato per consentire a un MV di eseguire un aggiornamento rapido che modifica solo i dati che sono stati modificati. Tuttavia, varie condizioni impediscono all'MV di utilizzare il registro e quindi richiedono un aggiornamento completo. Oracle ha implementato un aggiornamento atomico completo come eliminazione e inserimento di ogni record. Lo fa anche se alla fine non ci sono modifiche ai dati.
C'è un modo per rendere intelligente questa replica per quanto riguarda la generazione di ripetizioni ? Un MERGE seguito da un DELETE richiede di interrogare l'origine due volte. Ne varrebbe la pena raccogliere collettivamente i dati per eseguire un BULK MERGE e DELETE? C'è un modo migliore?
Aggiornare:
Ho esplorato usando una tabella temporanea globale come area di gestione temporanea. Anche se usano meno della metà della ripetizione, usano ancora molto.
insert
s. Questo corrisponde da vicino ai risultati che sto vedendo ed è migliore ma non buono come vorrei.
append
suggerimento) non sono le condizioni ideali per ridurre la ripetizione: ho eseguito alcuni test per mostrare cosa intendo. Inserito come risposta perché non rientrano in un commento
insert
ops genera molto meno annulla didelete
oupdate
ops (quasi nessuno in effetti). Avere più GTT per evitare qualsiasi operazione costosa potrebbe essere un buon approccio