Oracle
 sql >> Base de données >  >> RDS >> Oracle

Oracle - Que se passe-t-il lors de l'actualisation d'une vue 'REFRESH FORCE ON DEMAND' avec DBMS_MVIEW.REFRESH

Par défaut (et cette valeur par défaut change dans différentes versions d'Oracle), cela effectuera une actualisation complète et atomique de la vue matérialisée. Cela signifie que les données de la vue matérialisée seront supprimées, la requête sous-jacente sera réexécutée et les résultats seront chargés dans la vue matérialisée. Vous pouvez rendre l'actualisation plus efficace en transmettant une valeur de FALSE pour le ATOMIC_REFRESH paramètre, c'est-à-dire

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

Cela entraînera la troncature de la vue matérialisée, la réexécution de la requête et l'insertion des résultats dans la vue matérialisée via une insertion de chemin direct. Ce sera plus efficace qu'un rafraîchissement atomique mais la vue matérialisée sera vide lors du rafraîchissement.