Oracle
 sql >> Database >  >> RDS >> Oracle

Oracle - Cosa succede quando si aggiorna una vista "REFRESH FORCE ON DEMAND" con DBMS_MVIEW.REFRESH

Per impostazione predefinita (e questa impostazione predefinita cambia in diverse versioni di Oracle), ciò eseguirà un aggiornamento atomico completo sulla vista materializzata. Ciò significa che i dati nella vista materializzata verranno eliminati, la query sottostante verrà rieseguita e i risultati verranno caricati nella vista materializzata. Puoi rendere l'aggiornamento più efficiente passando un valore di FALSE per ATOMIC_REFRESH parametro, cioè

dbms_mview.refresh( 'TESTRESULT', atomic_refresh => false );

Ciò farà sì che la vista materializzata venga troncata, la query rieseguita e i risultati inseriti nella vista materializzata tramite un inserimento diretto del percorso. Sarà più efficiente di un aggiornamento atomico, ma la vista materializzata sarà vuota durante l'aggiornamento.