Jag antar att vi pratar om GLOBAL TEMPORARY
tabeller.
Tänk på en temporär tabell som på flera tabeller som skapas och släpps av varje process i farten från en mall som lagras i systemlexikonet .
I Oracle
, DML
av en temporary table
påverkar alla processer, medan data i tabellen endast kommer att påverka en process som använder dem.
Data i en temporary table
är endast synlig inom sessionsomfånget. Den använder TEMPORARY TABLESPACE
för att lagra både data och möjliga index.
DML
för en temporary table
(dvs. dess layout, inklusive kolumnnamn och index) är synlig för alla med tillräckliga privilegier.
Det betyder att existens av indexet kommer att påverka din process såväl som andra processer som använder tabellen i den meningen att alla processer som ändrar data i den temporary table
måste också ändra indexet.
Data som finns i tabellen (och även i indexet) kommer tvärtom bara att påverka processen som skapade dem, och kommer inte ens att vara synliga för andra processer.
OM du vill att en process ska använda indexet och en annan inte ska använda det, gör följande:
- Skapa två
temporary tables
med samma kolumnlayout - Indexa på en av dem
- Använd indexerad eller icke-indexerad tabell beroende på processen