Veröffentlicht 08. Juni 2016
Aktualisiert Oktober 2025
Einführung
Die Unterstützung von Fremdschlüssel-Indizes in Oracle bedeutet, sicherzustellen, dass jede Fremdschlüsselspalte über einen passenden Index verfügt.
Obwohl dies nicht zwingend erforderlich ist, führt ein solcher Index zu deutlich besserer Leistung.
Glücklicherweise macht Hora es besonders einfach, fehlende Indizes zu erkennen und sie mit nur wenigen Klicks anzulegen.
In diesem Beispiel haben wir das HR-Schema in HR1 geklont, um das Verhalten zu demonstrieren.
Es existiert eine Fremdschlüssel-Constraint, die sicherstellt, dass jede job_id in der Tabelle EMPLOYEES einer Primärschlüsselspalte in der Tabelle JOBS entspricht.
Diese Beziehung wird durch den Index EMP_JOB_IX unterstützt:

Liste der Tabellen-Constraints mit Spalten, die die Indexunterstützung für die Constraints anzeigen
Der Index optimiert Abfragen wie die folgende:

Beispiel-SQL-Abfrage, die einen Index verwendet
Wie im Explain Plan zu sehen ist, wird der Index verwendet, um die SA_REP-Zeilen effizient zu filtern:

Explain-Plan-Dialog mit Anzeige der Indexunterstützung
Was passiert ohne den Index?
Als Nächstes sehen wir uns an, was passiert, wenn wir diesen Index löschen und die Abfrage erneut ausführen.

Kontextmenü zum Löschen eines Indexes
Nachdem der Index entfernt wurde, zeigt die Constraint in Horas Constraints-Registerkarte keinen Eintrag mehr unter „Index support“:

Constraint-Liste zeigt nach dem Löschen des Indexes keine Indexunterstützung mehr an
Wenn wir die Abfrage danach erneut ausführen, zeigt der Explain Plan eine deutlich höhere CPU-Last – ein klarer Hinweis darauf, wie stark das Fehlen eines Indexes die Performance beeinträchtigt.

Explain-Plan-Dialog zeigt erhöhte CPU-Auslastung nach dem Löschen des Indexes
Warum Fremdschlüssel-Indizes wichtig sind
Ein weiterer Grund, Fremdschlüssel-Spalten zu indizieren, besteht darin, vollständige Tabellensperren auf der Kindtabelle zu verhindern, wenn Primärschlüssel in der Elterntabelle geändert oder gelöscht werden.
Ohne Index muss Oracle beim Löschen oder Aktualisieren des Primärschlüssels die gesamte Kindtabelle sperren, um sicherzustellen, dass keine abhängigen Datensätze mehr existieren.
Dies kann gleichzeitige Änderungen blockieren und die Verarbeitung erheblich verlangsamen.
Eine ausführliche konzeptionelle Beschreibung dieses Sachverhalts – am Beispiel der Tabellen HR.DEPARTMENTS und HR.EMPLOYEES – finden Sie im Oracle Concepts Manual.
Wie Hora das Problem löst
Wenn eine Fremdschlüssel-Constraint nicht durch einen Index unterstützt wird, können Sie das Problem in Hora ganz einfach beheben.
Öffnen Sie die Constraints-Registerkarte, klicken Sie mit der rechten Maustaste auf die Constraint und wählen Sie „Create index on FK columns“ aus dem Kontextmenü:

Kontextmenüeintrag „Create index on FK columns“ (Index für FK-Spalten erstellen)
Der Dialog wird automatisch mit den entsprechenden Details zur ausgewählten Constraint ausgefüllt, was Zeit spart und Fehler vermeidet:

Modaldialog zum Erstellen eines Indexes
Sie können den vorgeschlagenen Indexnamen, zum Beispiel EMP_JOB_FK_IDX, nach Wunsch anpassen oder den ursprünglichen Namen, z. B. EMP_JOB_IX, verwenden.
Auf diese Weise sorgt Hora für eine schnelle und einfache Korrektur – ohne SQL-Skripte manuell schreiben zu müssen.
Wir hoffen, Sie stimmen uns zu: Die Indexunterstützung für Fremdschlüssel ist eine kleine Maßnahme mit großem Effekt – und Hora macht deren Umsetzung besonders einfach.
➡️ KeepTool kostenlos testen
Die Oracle-Tools von KeepTool wurden speziell für Entwickler, DBAs und Support-Teams entwickelt.
Basierend auf über 25 Jahren Erfahrung optimieren wir unsere Software kontinuierlich, um Ihre Datenbankanalyse und -dokumentation schneller, effizienter und übersichtlicher zu gestalten.