Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Apakah aman untuk meletakkan indeks pada Tabel Sementara Oracle?

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara memilih grup item terkait di Oracle SQL

  2. Oracle.ManagedDataAccess ke AWS RDS DB - TCPS:SSL Wallet (Magic) Tidak Valid

  3. Status Risiko Analisis Tekanan Memori

  4. Fungsi DBTIMEZONE di Oracle

  5. dbms_output.put tidak mencetak data