Saya berasumsi kita sedang berbicara tentang GLOBAL TEMPORARY
tabel.
Bayangkan tabel sementara sebagai beberapa tabel yang dibuat dan dijatuhkan oleh setiap proses dengan cepat dari template yang disimpan dalam kamus sistem .
Di Oracle
, DML
dari temporary table
mempengaruhi semua proses, sedangkan data yang terdapat dalam tabel hanya akan mempengaruhi satu proses yang menggunakannya.
Data dalam temporary table
hanya terlihat di dalam lingkup sesi. Ini menggunakan TEMPORARY TABLESPACE
untuk menyimpan data dan kemungkinan indeks.
DML
untuk temporary table
(yaitu tata letaknya, termasuk nama kolom dan indeks) dapat dilihat oleh semua orang dengan hak istimewa yang memadai.
Ini berarti bahwa eksistensi indeks akan mempengaruhi proses Anda serta proses lain yang menggunakan tabel dalam arti bahwa setiap proses yang mengubah data di temporary table
juga harus mengubah indeks.
Data terkandung dalam tabel (dan dalam indeks juga), sebaliknya, hanya akan mempengaruhi proses yang membuatnya, dan bahkan tidak akan terlihat oleh proses lain.
JIKA Anda ingin satu proses menggunakan indeks dan yang lain tidak menggunakannya, lakukan hal berikut:
- Buat dua
temporary table
dengan tata letak kolom yang sama - Indeks salah satunya
- Gunakan tabel yang diindeks atau tidak diindeks tergantung pada prosesnya