Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Índice na junção e onde


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

Sugiro índices em A(year, id1, id2) e B(id1, id2, year) .

Você também pode escrever a consulta como:
Select *
from A join
     B
     on A.id1 = B.id1 and A.id2 = B.id2 and A.year = B.year
where A.year = 2016;

A resposta para sua pergunta é "sim" e indexe em B é a coisa certa a fazer. Nesta versão, a ordem das colunas no índice não importa muito.