Předpokládám, že mluvíme o GLOBAL TEMPORARY tabulky.
Představte si dočasnou tabulku jako více tabulek, které jsou vytvářeny a rušeny každým procesem za chodu ze šablony uložené v systémovém slovníku .
V Oracle , DML temporary table ovlivňuje všechny procesy, zatímco data obsažená v tabulce ovlivní pouze jeden proces, který je používá.
Data v temporary table je viditelný pouze v rámci relace. Používá TEMPORARY TABLESPACE k ukládání dat i případných indexů.
DML pro temporary table (tj. jeho rozložení, včetně názvů sloupců a indexů) je viditelné pro každého s dostatečnými oprávněními.
To znamená, že existence indexu ovlivní váš proces i další procesy používající tabulku v tom smyslu, že jakýkoli proces, který upravuje data v temporary table bude také muset upravit index.
Data obsažené v tabulce (a také v indexu) naopak ovlivní pouze proces, který je vytvořil, a nebude ani viditelné pro ostatní procesy.
Pokud chcete, aby jeden proces index používal a jiný jej nepoužíval, proveďte následující:
- Vytvořte dvě
temporary tablese stejným rozložením sloupců - Indexujte jeden z nich
- V závislosti na procesu použijte indexovanou nebo neindexovanou tabulku