Oracle автоматически создает вторичный индекс для столбцов FOREIGN KEY?

В настоящее время я разрабатываю Oracle. У меня есть несколько таблиц, для которых я определил ограничения FOREIGN KEY. Я уже прочитал этот SQL Server, ориентированный на вопросы, ориентированные на MySQL, но я не смог найти ни одного об Oracle.

Итак, вопрос всегда один и тот же: нужно ли мне также создавать явный вторичный индекс для тех столбцов, для которых я создаю ограничение FOREIGN KEY? Разве Oracle не создает автоматически индекс для столбцов с FOREIGN KEYed для повышения производительности во время JOINs?

Обычно я выполняю запросы, в которых предложение WHERE сравнивается с этими столбцами.


person usr-local-ΕΨΗΕΛΩΝ    schedule 13.02.2012    source источник
comment
Нет, это не так. См., Например, this.   -  person Alex Poole    schedule 13.02.2012


Ответы (1)


Нет, Oracle не создает автоматически индексы для столбцов внешнего ключа, хотя в 99% случаев вы, вероятно, должны это сделать. Помимо помощи с запросами, индекс также улучшает производительность операторов удаления в родительской таблице.

person Tony Andrews    schedule 13.02.2012
comment
Однако поддержание таких индексов требует затрат, и бывают случаи, когда их лучше не создавать. Лично я подозреваю, что он должен создавать их по умолчанию и позволять вам отбрасывать их, если хотите, но Oracle - далеко не единственная БД, которая ведет себя так же. PostgreSQL также не создает автоматически индексы для ссылающейся стороны отношения внешнего ключа. - person Craig Ringer; 23.08.2012