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

Oracle:Indeks multikolom tunggal atau dua indeks kolom tunggal

Itu tergantung...

Sangat tidak mungkin bahwa indeks hanya pada column1 akan bermanfaat jika Anda sudah memiliki indeks komposit di column1, column2 . Sejak column1 adalah indeks utama, kueri terhadap tabel yang hanya memiliki column1 sebagai predikat akan dapat menggunakan indeks komposit. Jika Anda sering menjalankan kueri yang perlu melakukan pemindaian penuh terhadap indeks dan keberadaan column2 secara substansial meningkatkan ukuran indeks, ada kemungkinan indeks hanya pada column1 akan lebih efisien karena pemindaian indeks penuh perlu melakukan lebih sedikit I/O. Tapi itu adalah situasi yang sangat tidak biasa.

Indeks hanya pada column2 mungkin bermanfaat jika beberapa kueri Anda terhadap tabel menentukan predikat hanya pada column2 . Jika ada sedikit nilai yang berbeda dari column1 , ada kemungkinan Oracle dapat melakukan index skip scan menggunakan indeks komposit untuk memenuhi query yang hanya menentukan column2 sebagai predikat. Tetapi pemindaian lewati cenderung jauh kurang efisien daripada pemindaian rentang sehingga kemungkinan besar indeks hanya pada column2 akan menguntungkan pertanyaan tersebut. Jika ada sejumlah besar nilai yang berbeda untuk column1 , pemindaian lewati akan menjadi kurang efisien dan indeks hanya pada column2 akan lebih menguntungkan. Tentu saja, jika Anda tidak pernah menanyakan tabel menggunakan column2 tanpa juga menentukan predikat pada column1 , Anda tidak memerlukan indeks hanya pada column2 .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ERROR- ORA-00060:kebuntuan terdeteksi saat menunggu sumber daya

  2. Cara memilih nilai tertentu dari XML menggunakan Oracle Xquery

  3. PLS-00201:pengenal 'R_CUR' harus dideklarasikan dalam sql dinamis

  4. Apakah mungkin untuk merujuk ke nama kolom melalui variabel bind di Oracle?

  5. SQL trunc/grup/pesan berdasarkan tanggal (hari/bulan/kuartal/tahun) dengan jumlah lewati tanggal tanpa data