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

Aggiornamento rapido al commit della vista materializzata

Non so se il problema persiste, ma quando ho dato un'occhiata all'articolo che hai fornito, ho notato qualcosa (che potrebbe essere proprio la soluzione qui):

Aggiorna su COMMIT

Una vista materializzata può essere aggiornata automaticamente utilizzando il metodo ON COMMIT. Pertanto, ogni volta che viene eseguito un commit di una transazione che ha aggiornato le tabelle su cui è definita una vista materializzata, tali modifiche si riflettono automaticamente nella vista materializzata. Il vantaggio dell'utilizzo di questo approccio è che non devi mai ricordarti di aggiornare la vista materializzata. L'unico svantaggio è che il tempo necessario per completare il commit sarà leggermente più lungo a causa dell'elaborazione aggiuntiva necessaria. Tuttavia, in un data warehouse, questo non dovrebbe essere un problema perché è improbabile che ci siano processi simultanei che tentano di aggiornare la stessa tabella.

  • Nota la linea in grassetto.

Allora abbiamo:

Tabella 7-1 Metodi di aggiornamento ON DEMAND

Descrizione parametro opzione di aggiornamentoCOMPLETO C Aggiorna ricalcolando la query di definizione della vista materializzata.

VELOCE F Aggiorna applicando in modo incrementale le modifiche alla vista materializzata . Per le viste materializzate locali, sceglie il metodo di aggiornamento che secondo l'ottimizzatore è il più efficiente. I metodi di aggiornamento considerati sono FAST e FAST_PCT basati su log.

FAST_PCT P Si aggiorna ricalcolando le righe nella vista materializzata interessate dalle partizioni modificate nelle tabelle dei dettagli.

FORZA ? Tenta un aggiornamento rapido. Se ciò non è possibile, esegue un aggiornamento completo. Per le viste materializzate locali, sceglie il metodo di aggiornamento stimato dall'ottimizzatore come più efficiente. I metodi di aggiornamento considerati sono FAST, FAST_PCT e COMPLETE basati su log.

  • Nota le linee in grassetto.
  • Personalmente preferisco l'opzione FORCE.

Potresti per favore dirmi se dopo un po' di tempo si ripresenta (dipende dai parametri del DB e dalla macchina su cui gira, quindi non posso nemmeno suggerirti quanto)?

Quando è possibile l'aggiornamento rapido

Non tutte le visualizzazioni materializzate potrebbero essere aggiornabili rapidamente. Pertanto, utilizzare il pacchetto DBMS_MVIEW.EXPLAIN_MVIEW per determinare quali metodi di aggiornamento sono disponibili per una vista materializzata.

Se non sei sicuro di come rendere rapidamente aggiornabile una vista materializzata, puoi utilizzare il DBMS_ADVISOR.TUNE_MVIEW procedura, che fornisce uno script contenente le istruzioni necessarie per creare una vista materializzata aggiornabile rapidamente.

Saluti