Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Indeks dołączenia i gdzie

Dla tego zapytania:

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

Sugerowałbym indeksy na A(year, id1, id2) i B(id1, id2, year) .

Możesz również napisać zapytanie jako:

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

Odpowiedź na Twoje pytanie brzmi „tak” i indeksuj na B jest właściwą rzeczą do zrobienia. W tej wersji kolejność kolumn w indeksie tak naprawdę nie ma znaczenia.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. java.sql.SQLException:nieprawidłowe argumenty w wywołaniu

  2. Funkcja HEXTORAW() w Oracle

  3. Oracle szyfruje/odszyfrowuje clob

  4. Sql*plus zawsze zwraca kod wyjścia 0?

  5. Oracle:Jak mogę zaimplementować naturalną kolejność-by w zapytaniu SQL?