Oracle-Indexunterstützung für Fremdschlüssel für Bessere Performance

    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

    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

    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

    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

    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

    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

    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)

    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

    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.