Domanda

Qual è la differenza tra viste e viste materializzate in Oracle?

È stato utile?

Soluzione

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.

Altri suggerimenti

Visualizzazioni

Valutano i dati nelle tabelle sottostanti la definizione della vista nel momento in cui viene interrogata la vista.È una visualizzazione logica delle tue tabelle, senza dati archiviati altrove.

Il lato positivo di questa visione è che lo farà restituisci sempre i dati più recenti.IL lo svantaggio di una visione è che le sue prestazioni dipende dalla validità dell'istruzione select su cui si basa la visualizzazione.Se l'istruzione select utilizzata dalla vista unisce molte tabelle o utilizza join basati su colonne non indicizzate, la vista potrebbe funzionare in modo scarso.

Viste materializzate

Sono simili alle visualizzazioni normali, nel senso che sono una visualizzazione logica dei dati (basata su un'istruzione select), tuttavia, il set di risultati della query sottostante è stato salvato in una tabella.Il lato positivo è che quando interroghi una vista materializzata, stai interrogando una tabella, che può anche essere indicizzato.

Inoltre, poiché tutti i join sono stati risolti al momento dell'aggiornamento della vista materializzata, pagherai il prezzo del join una volta (o ogni volta che aggiorni la vista materializzata), anziché ogni volta che selezioni dalla vista materializzata.Inoltre, con la riscrittura delle query abilitata, Oracle può ottimizzare una query che seleziona dall'origine della vista materializzata in modo tale da leggere invece dalla vista materializzata.Nelle situazioni in cui crei viste materializzate come forme di tabelle aggregate o come copie di query eseguite di frequente, ciò può accelerare notevolmente i tempi di risposta dell'applicazione dell'utente finale.IL lo svantaggio però è che i dati che ottieni dalla vista materializzata sono aggiornati solo quanto l'ultima volta che la vista materializzata è stata aggiornata.


Le viste materializzate possono essere impostate per l'aggiornamento manuale, secondo una pianificazione prestabilita oppure in base al database che rileva una modifica nei dati da una delle tabelle sottostanti.Le viste materializzate possono essere aggiornate in modo incrementale combinandole con i log delle viste materializzate, che agire come origini di acquisizione dei dati di modifica sulle tabelle sottostanti.

Le visualizzazioni materializzate vengono spesso utilizzate nelle applicazioni di data warehousing/business intelligence in cui l'esecuzione di query su tabelle fattuali di grandi dimensioni con migliaia di milioni di righe comporterebbe tempi di risposta alle query che renderebbero un'applicazione inutilizzabile.


Le visualizzazioni materializzate aiutano anche a garantire un momento coerente nel tempo, simile a isolamento dell'istantanea.

Una vista utilizza una query per estrarre dati dalle tabelle sottostanti.

Una vista materializzata è una tabella su disco che contiene il set di risultati di una query.

Le visualizzazioni materializzate vengono utilizzate principalmente per aumentare le prestazioni dell'applicazione quando non è fattibile o consigliabile utilizzare una visualizzazione standard a cui sono applicati indici.Le viste materializzate possono essere aggiornate regolarmente tramite trigger o utilizzando il file ON COMMIT REFRESH opzione.Ciò richiede alcune autorizzazioni aggiuntive, ma non è niente di complesso. ON COMMIT REFRESH è in vigore almeno da Oracle 10.

Le viste sono essenzialmente strutture logiche simili a tabelle popolate al volo da una determinata query.I risultati di una query di visualizzazione non vengono archiviati in nessun punto del disco e la visualizzazione viene ricreata ogni volta che viene eseguita la query.Le viste materializzate sono strutture effettive archiviate nel database e scritte su disco.Vengono aggiornati in base ai parametri definiti al momento della creazione.

Vista materializzata - una tabella su un disco che contiene il set di risultati di una query

Visione non materializzata - una query che estrae i dati dalla tabella sottostante

Visualizzazione: View è solo una query denominata.Non memorizza nulla.Quando è presente una query sulla vista, viene eseguita la query della definizione della vista.I dati effettivi provengono dalla tabella.

Viste materializzate: Memorizza i dati fisicamente e li aggiorna periodicamente.Durante l'interrogazione di MV, fornisce i dati da MV.

In aggiunta alla risposta piuttosto approfondita di Mike McAllister...

Le viste materializzate possono essere impostate solo per l'aggiornamento automaticamente attraverso il database rilevando le modifiche quando viene considerata la query di visualizzazione semplice dal compilatore.Se è considerato troppo complesso, non sarà in grado di impostare quelli che sono essenzialmente trigger interni per tenere traccia delle modifiche nelle tabelle di origine per aggiornare solo le righe modificate nella tabella mview.

Quando crei una vista materializzata, scoprirai che Oracle crea sia mview e come tabella con lo stesso nome, il che può creare confusione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top