Любой запрос, даже без условия во WHERE и без джоинов с таблицами, будет выполняться по какому-то плану. СУБД (например, ORACLE или MS SQL Server) может оценить запрос до его выполнения, то есть то, как он будет выполнен и дать примерную оценку своих трудозатрат на каждый этап действий (сколько примерно данных с жёсткого диска будет прочитано, сколько нужно процессорных ресурсов для просчёта чего-либо или для расстановки данных в нужном порядке и т.д). В разных программах работы с базами данных получение плана запроса может быть более удобным чем в других программах...
Выполняя любую команду SQL, каждая СУБД старается выполнить её максимально эффективно. В каждой СУБД есть «оптимизатор», то есть механизм, принимающий решение как команда будет выполнена максимально эффективным образом. Строится план. Мы можем влиять на план выполнения запроса с помощью подсказок (хинтов), оставляя их прямо в SQL-коде. Если на одной из таблиц, участвующих в SQL-запросе есть индекс для какого-то столбца, значения которого используются во WHERE или в ON, то не обязательно, что он будет...