sql >> Database >  >> RDS >> Oracle

Index op deelnemen en waar

Voor deze vraag:

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

Ik zou indexen aanraden op A(year, id1, id2) en B(id1, id2, year) .

U kunt de zoekopdracht ook schrijven als:

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

Het antwoord op je vraag is "ja" en indexeer op B is het juiste om te doen. In deze versie doet de volgorde van de kolommen in de index er niet echt toe.




  1. Hive Table retourneert een lege resultaatset voor alle query's

  2. Grote BLOB's doorgeven aan opgeslagen procedure

  3. PHP PDO Postgres versus Sqlite kolomtype voor count(*)

  4. Kerstmis komt vroeg (Oracle 12.2)