sql >> Base de Datos >  >> RDS >> Oracle

Oracle:qué sucede al actualizar una vista 'REFRESH FORCE ON DEMAND' con DBMS_MVIEW.REFRESH

De forma predeterminada (y este valor predeterminado cambia en diferentes versiones de Oracle), eso hará una actualización atómica completa en la vista materializada. Eso significa que los datos en la vista materializada se eliminarán, la consulta subyacente se volverá a ejecutar y los resultados se cargarán en la vista materializada. Puede hacer que la actualización sea más eficiente al pasar un valor de FALSO para ATOMIC_REFRESH parámetro, es decir,

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

Eso hará que la vista materializada se trunque, la consulta se vuelva a ejecutar y los resultados se inserten en la vista materializada a través de una inserción de ruta directa. Eso será más eficiente que una actualización atómica, pero la vista materializada estará vacía durante la actualización.