2015-09-11 11 views
5

Sto chiamando la funzione all'interno della query di visualizzazione selezionata. Visualizza sta leggendo i record dalla tabella che contiene circa 1 milione di record. Quando scrivo la parola chiave RESULT_CACHE in funzione, ricevo l'output in frazione di secondi. Ho dubbi sul fatto che quando viene modificato il valore di una colonna che viene usata nella vista, la funzione valuterà quel nuovo valore?La parola chiave RESULT_CACHE restituirà i dati aggiornati dalla funzione in Oracle?

+1

è possibile condividere scatto codice? –

+1

Fornire il codice di esempio. quindi possiamo aiutarti. – Hardy

+0

In alcune circostanze, il risultato della funzione verrà memorizzato nella cache nell'ambito di esecuzione in una singola istruzione SQL, in base al fatto che sia deterministico e sulle modifiche ai parametri di input, indipendentemente dall'impostazione RESULT_CACHE. Sei sicuro di aver bisogno di RESULT_CACHE? –

risposta

4

Come da mia conoscenza, RESULT_CACHE fornirà i dati dalla cache dei risultati in memoria speciale dell'oracolo.

se si desidera ottenere risultati aggiornati è possibile utilizzare, RESULT_CACHE RELIES_ON (TABLE NAME).

Ma se la versione del DB è 11.2 o successiva, la clausola RELIES ON non è necessaria poiché tiene automaticamente traccia delle dipendenze e invalida i risultati memorizzati nella cache quando necessario.

è possibile fare riferimento da here o here nei dettagli

+3

clausola relies_on è deprecata in oracolo 11.2 –

+0

In realtà, 'RELIES_ON' è * ignorato * in Oracle 11.2+ –

+0

@Jeffrey, è possibile fornire il collegamento per una migliore comprensione. – chetan

1

Sì, penso che aggiornerà i dati. Ma dopo l'aggiornamento dei dati Ci vorrà del tempo per eseguire la prima volta.

Problemi correlati