sql >> Base de Datos >  >> RDS >> Oracle

Índice en unirse y dónde

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;

Sugeriría índices en A(year, id1, id2) y B(id1, id2, year) .

También puede escribir la 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;

La respuesta a su pregunta es "sí" e indexe en B es lo correcto. En esta versión, el orden de las columnas en el índice realmente no importa.