Qual è la differenza tra Views e Materialized Views in Oracle?
Le viste materializzate sono basate su disco e vengono aggiornate periodicamente in base alla definizione della query.
Le viste sono solo virtuali ed eseguono la definizione della query ogni volta che vi si accede.
Una vista usa una query per estrarre i dati dalle tabelle sottostanti.
Una vista materializzata è una tabella su disco che contiene l'insieme dei risultati di una query.
Le viste materializzate sono utilizzate principalmente per aumentare le prestazioni dell'applicazione quando non è fattibile o desiderabile utilizzare una vista standard con indici applicati. Le viste materializzate possono essere aggiornate su base regolare attraverso trigger o utilizzando l'opzione ON COMMIT REFRESH
. Questo richiede alcuni permessi extra, ma non è niente di complesso. L'opzione ON COMMIT REFRESH
esiste almeno da Oracle 10.
Le viste sono essenzialmente strutture logiche simili a tabelle popolate al volo da una data query. I risultati di una query non sono memorizzati da nessuna parte sul disco e la vista viene ricreata ogni volta che la query viene eseguita. Le viste materializzate sono strutture reali memorizzate all'interno del database e scritte su disco. Vengono aggiornate in base ai parametri definiti al momento della loro creazione.