Differenza tra vista e vista materializzata

Vista vs Vista materializzata

Le viste e le viste materializzate (mviews) sono due tipi di oggetti di database oracle. Entrambi questi oggetti fanno riferimento a query selezionate. Queste query selezionate fungono da tabelle virtuali. Normalmente le visualizzazioni e le mviews fanno riferimento a query di selezione di grandi dimensioni, che hanno un insieme di join. Pertanto, uno dei principali vantaggi delle visualizzazioni è la possibilità di archiviare query di selezione complesse come visualizzazioni. Quindi, possiamo nascondere la logica dietro le query selezionate dai suoi utenti finali. Quando abbiamo bisogno di eseguire la complessa istruzione select, dobbiamo solo eseguire

                      seleziona * da viewname

vista

Come accennato in precedenza, view è una tabella virtuale, che nasconde una query selezionata. Queste query selezionate non sono pre-eseguite. Quando eseguiamo un'istruzione select da una vista, esegue l'istruzione select che si trova all'interno del corpo della vista. Supponiamo che l'affermazione selezionata del corpo della vista sia un'affermazione molto complessa. Quindi, quando viene eseguito, ci vuole del tempo per l'esecuzione (relativamente più tempo). Inoltre, la vista utilizza uno spazio molto piccolo per memorizzare se stesso. Questo perché ha solo un'istruzione selezionata come il suo contenuto.

Vista materializzata (Mview)

Questo è un tipo speciale di vista. Le Mviews vengono create quando si verificano problemi di prestazioni con le visualizzazioni. Quando creiamo un mview, esso esegue la sua query di selezione e memorizza il suo output come una tabella di istantanee. Quando richiediamo dati da Mview, non è necessario rieseguire la sua istruzione select. Fornisce l'output dalla sua tabella di snapshot. Pertanto, il tempo di esecuzione di mview è inferiore alla vista (per la stessa istruzione select). Tuttavia, mviews non può essere utilizzato sempre, poiché mostra lo stesso output, che è memorizzato come una tabella di istantanee. Dovremmo aggiornare la schermata per ottenere il suo ultimo set di risultati.

Qual è la differenza tra Visualizza e Mview?

1. Mview memorizza sempre l'output come tabella snapshot quando viene creato, ma view non crea tabelle.

2. View non ha bisogno di grandi spazi per archiviare il suo contenuto, ma mview necessita di uno spazio relativamente più grande di una vista per archiviare il suo contenuto (come una tabella di istantanee). 

3. La vista richiede tempi di esecuzione maggiori, ma mview richiede tempi di esecuzione inferiori rispetto alle visualizzazioni (per la stessa istruzione select).

4. Mviews deve essere aggiornato per ottenere i suoi ultimi dati, ma le viste danno sempre i suoi ultimi dati.

5. Lo schema ha bisogno "Creare una vista materializzata" privilegio per creare mviews e per le visualizzazioni, ha bisogno "Crea vista" privilegio.

6. Gli indici possono essere creati su mviews per ottenere maggiori prestazioni, ma non è possibile creare indici sulle viste.