Просто для дополнительной информации: Oracle не создает индекс автоматически (как это делается для уникальных ограничений), потому что (а) это не требуется для обеспечения соблюдения ограничения и (б) в некоторых случаях он вам не нужен.
Однако в большинстве случаев вам может понадобиться создать индекс (фактически, в Oracle Apex есть отчет о «неиндексированных внешних ключах»).
Каждый раз, когда приложению необходимо иметь возможность удалить строку в родительской таблице или обновить значение PK (что встречается реже), DML пострадает, если индекс не существует, потому что ему придется заблокировать всю дочернюю таблицу.
Случай, когда я обычно не добавляю индекс, - это когда FK относится к таблице «статических данных», которая определяет домен столбца (например, таблицу кодов состояния), где обновления и удаления в родительской таблице никогда не выполняются. прямо в приложении. Однако если добавление индекса в столбец дает преимущества для важных запросов в приложении, то индекс все равно будет хорошей идеей.