Supongo que estamos hablando de GLOBAL TEMPORARY
mesas.
Piense en una tabla temporal como si fueran varias tablas que cada proceso crea y elimina sobre la marcha a partir de una plantilla almacenada en el diccionario del sistema .
En Oracle
, DML
de una temporary table
afecta a todos los procesos, mientras que los datos contenidos en la tabla afectarán solo a un proceso que los utiliza.
Datos en una temporary table
es visible solo dentro del alcance de la sesión. Utiliza TEMPORARY TABLESPACE
para almacenar tanto datos como posibles índices.
DML
para una temporary table
(es decir, su diseño, incluidos los nombres de las columnas y los índices) es visible para todos los que tienen suficientes privilegios.
Esto significa que existencia del índice afectará a su proceso, así como a otros procesos que utilicen la tabla, en el sentido de que cualquier proceso que modifique datos en la temporary table
también habrá que modificar el índice.
Datos contenidos en la tabla (y también en el índice), por el contrario, afectarán solo al proceso que los creó, y ni siquiera serán visibles para otros procesos.
SI desea que un proceso use el índice y otro no, haga lo siguiente:
- Cree dos
temporary tables
con el mismo diseño de columna - Índice de uno de ellos
- Usar tablas indexadas o no indexadas según el proceso