Published 08. June 2016
Updated October 2025
Introduction
Oracle foreign key index support means ensuring that every foreign key column has a corresponding index. While not mandatory, having such an index significantly improves performance. Fortunately, Hora makes it easy to detect missing indexes and create them with just a few clicks.
Here we’ve cloned the HR schema into HR1 to demonstrate how this works. There is a foreign key constraint requiring each job_id in the EMPLOYEES table to match a primary key in the JOBS table. It is supported by the index EMP_JOB_IX:

List of table constraints including columns showing index support for constraint
This index helps optimize queries such as the one below:

Sample SQL query that uses an index
As shown in the Explain Plan, the index is used to efficiently filter out the SA_REP rows:

Explain plan dialog showing index support
What Happens Without the Index
Now let’s see what happens if we drop this index and re-execute the query:

Context menu to drop an index
After removing the index, the constraint shows nothing under “Index support” in Hora’s Constraints tab:

Constraint list shows no index support after index has been dropped
When we run the query again, the Explain Plan shows a significantly increased CPU cost, clearly demonstrating the impact of the missing index.

Explain plan dialog shows increased CPU after index has been dropped
Why Foreign Key Indexes Matter
Another important reason to keep indexes on foreign key columns is to prevent full table locks on the child table whenever a parent table’s primary key is updated or deleted.
Without an index, Oracle must lock the entire child table to maintain referential integrity, which can block concurrent transactions.
For a detailed conceptual explanation using the HR.DEPARTMENTS and HR.EMPLOYEES tables, refer to the Oracle Concepts Manual.
How Hora Helps You Fix It
If you encounter a foreign key constraint that is not supported by an index, Hora makes it easy to correct the issue.
Simply open the Constraints tab, right-click the constraint, and choose “Create index on FK columns” from the context menu:

“Create index on FK columns” context menu item
The dialog automatically fills in the relevant details for the selected constraint, saving you time and effort:

Modal dialog to create an index
You can even replace the suggested index name, such as EMP_JOB_FK_IDX, with the original Oracle-supplied name (EMP_JOB_IX) before proceeding.
This seamless workflow ensures that your foreign keys are fully optimized without requiring manual SQL scripting.
We hope you agree that foreign key index support is a small step that delivers big performance benefits—and that Hora makes managing it effortless.
➡️ Try KeepTool for free
KeepTool's Oracle tools are designed specifically for developers, DBAs, and support teams.
Based on over 25 years of experience, we continuously optimize our software to make your database analysis and documentation faster, more efficient, and clearer.