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