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

Evitare chiamate frequenti alla stessa vista all'interno di una procedura Oracle

Una vista è una query memorizzata; di per sé, non contiene alcun dato. Se il suo codice è complesso e recupera i dati da più tabelle, utilizzando condizioni, aggregazioni e quant'altro, l'accesso ai dati può richiedere del tempo.

Nella tua situazione, forse una tabella temporanea (GTT) globale (o privata, a seconda della versione Oracle che utilizzi).

  • lo crei una volta
  • all'inizio della procedura, inserisci i dati della vista in essa
  • il resto della procedura funzionerebbe con quelli preparati dati
  • al termine della sessione (o transazione; a seconda di come hai impostato il GTT), i dati della tabella vengono persi
    • la tabella può essere riutilizzata la prossima volta che esegui la procedura