Je suppose que nous parlons de GLOBAL TEMPORARY
tableaux.
Considérez une table temporaire comme plusieurs tables créées et supprimées par chaque processus à la volée à partir d'un modèle stocké dans le dictionnaire système .
Dans Oracle
, DML
d'une temporary table
affecte tous les processus, tandis que les données contenues dans la table n'affecteront qu'un seul processus qui les utilise.
Données dans une temporary table
est visible uniquement à l'intérieur de la portée de la session. Il utilise TEMPORARY TABLESPACE
pour stocker à la fois les données et les éventuels index.
DML
pour une temporary table
(c'est-à-dire sa mise en page, y compris les noms de colonne et les index) est visible par tout le monde avec des privilèges suffisants.
Cela signifie que l'existence de l'index affectera votre processus ainsi que d'autres processus utilisant la table en ce sens que tout processus qui modifie les données dans la temporary table
devra également modifier l'index.
Données contenus dans la table (et dans l'index aussi), au contraire, n'affecteront que le processus qui les a créés, et ne seront même pas visibles pour les autres processus.
SI vous souhaitez qu'un processus utilise l'index et qu'un autre ne l'utilise pas, procédez comme suit :
- Créer deux
temporary tables
avec la même disposition de colonne - Index sur l'un d'entre eux
- Utiliser une table indexée ou non indexée selon le processus