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

Kapan saya harus menggunakan Tabel Terorganisir Indeks Oracle? Atau, kapan saya tidak boleh?

Pada dasarnya tabel yang diatur indeks adalah indeks tanpa tabel. Ada objek tabel yang dapat kita temukan di USER_TABLES tetapi itu hanya referensi ke indeks yang mendasarinya. Struktur indeks cocok dengan proyeksi tabel. Jadi, jika Anda memiliki tabel yang kolomnya terdiri dari kunci utama dan paling banyak satu kolom lainnya, maka Anda memiliki kandidat yang mungkin untuk INDEX ORGANIZED.

Kasus penggunaan utama untuk tabel terorganisir indeks adalah tabel yang hampir selalu diakses oleh kunci utamanya dan kami selalu ingin mengambil semua kolomnya. Dalam praktiknya, tabel terorganisir indeks kemungkinan besar menjadi data referensi, urusan pencarian kode. Tabel aplikasi hampir selalu tersusun rapi.

Sintaksnya memungkinkan IOT memiliki lebih dari satu kolom non-kunci. Terkadang ini benar. Tetapi ini juga merupakan indikasi bahwa mungkin kita perlu mempertimbangkan kembali keputusan desain kita. Tentu saja jika kita mendapati diri kita merenungkan perlunya indeks tambahan pada kolom kunci non-primer maka kita mungkin lebih baik dengan tabel heap biasa. Jadi, karena sebagian besar tabel mungkin memerlukan indeks tambahan, sebagian besar tabel tidak cocok untuk IOT.

Kembali ke jawaban ini, saya melihat beberapa tanggapan lain di utas ini mengusulkan tabel persimpangan sebagai kandidat yang cocok untuk IOT. Ini tampaknya masuk akal, karena biasanya tabel persimpangan memiliki proyeksi yang cocok dengan kunci kandidat:STUDENTS_CLASSES dapat memiliki proyeksi yang adil (STUDENT_ID, CLASS_ID).

Saya tidak berpikir ini besi tuang. Tabel persimpangan sering kali memiliki kunci teknis (yaitu STUDENT_CLASS_ID). Mereka mungkin juga memiliki kolom non-kunci (kolom metadata seperti START_DATE, END_DATE adalah umum). Juga tidak ada jalur akses yang berlaku - kami ingin mencari semua siswa yang mengambil kelas sesering kami ingin menemukan semua kelas yang diambil siswa - jadi kami memerlukan strategi pengindeksan yang mendukung keduanya dengan baik. Tidak mengatakan tabel persimpangan bukan kasus penggunaan untuk IOT. hanya saja tidak otomatis demikian.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana saya bisa memasukkan IF ELSE CONDITION dalam permintaan Oracle?

  2. Penyembunyian angka &nls_parameter

  3. Pemberitahuan perubahan Oracle Database

  4. Oracle SQL - Permintaan untuk menghitung nilai dari beberapa tabel

  5. Pengecualian ODP.Net Driver Throwing pada .NET Core 5.0