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

Oracle - Hvad sker der, når en 'REFRESH FORCE ON DEMAND'-visning opdateres med DBMS_MVIEW.REFRESH

Som standard (og denne standard ændres i forskellige versioner af Oracle), vil det gøre en fuld, atomær opdatering af den materialiserede visning. Det betyder, at dataene i den materialiserede visning vil blive slettet, den underliggende forespørgsel vil blive genudført, og resultaterne vil blive indlæst i den materialiserede visning. Du kan gøre opdateringen mere effektiv ved at indsætte en værdi på FALSE for ATOMIC_REFRESH parameter, dvs.

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

Det vil få den materialiserede visning til at blive afkortet, forespørgslen genudført, og resultaterne indsat i den materialiserede visning via en direkte stiindsættelse. Det vil være mere effektivt end en atomisk opdatering, men den materialiserede visning vil være tom under opdateringen.




  1. Hvorfor har self.object i en CreateView ikke et id efter at have gemt i databasen?

  2. Overvågning af brugte forbindelser på mysql for at fejlsøge 'for mange forbindelser'

  3. Betinget mySQL-erklæring. Hvis sand OPDATERING, hvis falsk INDSÆT

  4. Hvordan kan jeg tilføje/sammenkæde BLOB-data til en BLOB-kolonne ved hjælp af SQL UPDATE-kommandoen i ORACLE