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

Indeks saat bergabung dan di mana

Untuk kueri ini:

Select *
from A join
     B
     on A.id1 = B.id1 and A.id2 = B.id2
where A.year = 2016 and B.year = 2016;

Saya akan menyarankan indeks pada A(year, id1, id2) dan B(id1, id2, year) .

Anda juga dapat menulis kueri sebagai:

Select *
from A join
     B
     on A.id1 = B.id1 and A.id2 = B.id2 and A.year = B.year
where A.year = 2016;

Jawaban atas pertanyaan Anda adalah "ya" dan indeks pada B adalah hal yang benar untuk dilakukan. Dalam versi ini, urutan kolom dalam indeks tidak terlalu penting.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-01843:bukan bulan yang valid

  2. LISTAGG rangkaian aneh

  3. tidak dapat menerima parameter dari prosedur Oracle yang dijalankan oleh mybatis

  4. Alternatif untuk LIMIT dan OFFSET untuk paging di Oracle

  5. Juli 2016 PSU gagal isqora