Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Index beitreten und wo

Für diese Abfrage:

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

Ich würde Indexe auf A(year, id1, id2) vorschlagen und B(id1, id2, year) .

Sie können die Abfrage auch folgendermaßen schreiben:

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

Die Antwort auf Ihre Frage ist "ja" und Index auf B ist das Richtige. In dieser Version spielt die Reihenfolge der Spalten im Index keine Rolle.