Presumo che stiamo parlando di GLOBAL TEMPORARY
tabelle.
Pensa a una tabella temporanea come a più tabelle che vengono create e eliminate al volo da ogni processo da un modello memorizzato nel dizionario di sistema .
In Oracle
, DML
di una temporary table
interessa tutti i processi, mentre i dati contenuti nella tabella influenzeranno solo un processo che li utilizza.
Dati in una temporary table
è visibile solo all'interno dell'ambito della sessione. Usa TEMPORARY TABLESPACE
per memorizzare sia i dati che i possibili indici.
DML
per una temporary table
(cioè il suo layout, inclusi i nomi delle colonne e gli indici) è visibile a tutti coloro che dispongono di privilegi sufficienti.
Ciò significa che esistenza dell'indice influenzerà il tuo processo così come altri processi che utilizzano la tabella nel senso che qualsiasi processo che modifica i dati nella temporary table
dovrà anche modificare l'indice.
Dati contenuti nella tabella (e anche nell'indice), al contrario, influenzeranno solo il processo che li ha creati e non saranno nemmeno visibili ad altri processi.
SE vuoi che un processo utilizzi l'indice e un altro che non lo usi, procedi come segue:
- Crea due
temporary tables
con la stessa disposizione delle colonne - Indice su uno di essi
- Utilizza tabelle indicizzate o non indicizzate a seconda del processo