Oracle
 sql >> база данни >  >> RDS >> Oracle

Индекс за присъединяване и къде

За тази заявка:

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

Бих предложил индекси на A(year, id1, id2) и B(id1, id2, year) .

Можете също да напишете заявката като:

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

Отговорът на вашия въпрос е "да" и индекс на B е правилното нещо. В тази версия редът на колоните в индекса няма особено значение.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Промяна на тази заявка за групиране на редове и филтриране на всички редове с изключение на този с най-малка стойност

  2. ORACLE Query с ORDER BY и UNION

  3. BatchUpdateException:партидата няма да бъде прекратена

  4. Извличане на данни от Oracle SP Out Param SYS_REFCURSOR в Unix Korn Shell Script

  5. Как можем да определим размера на изходния параметър в съхранената процедура?