Oracle Create-Index

Oracle Create Index



In Oracle-Datenbanken bezieht sich ein Index auf eine Datenstruktur, die die Geschwindigkeit von Datenabrufvorgängen in einer Datenbanktabelle erhöht. Dies kann jedoch zu zusätzlichen Schreibvorgängen und Speicherplatz in Ihrer Datenbank führen.

Ein Beispiel dafür, wo ein Datenbankindex nützlich wäre, ist ein Kundenbeziehungsmanagementsystem.







In einem solchen System können wir eine Datenbanktabelle haben, die Kundeninformationen speichert. Dies kann Name, Adresse, Zahlungsmethoden, Kontaktinformationen usw. umfassen.



Wenn die Tabelle viele Datensätze enthält, möglicherweise Millionen davon, kann es viel Zeit und Ressourcen in Anspruch nehmen, nach bestimmten Kundeninformationen in der Datenbank zu suchen. Dies ist ein negatives Phänomen, insbesondere in Datenbanken, bei denen die Leistung kritisch ist.



Um dies zu umgehen, können wir einen Datenbankindex verwenden.





Beispielsweise können wir einen Index für die Namensspalte des Kunden erstellen, der es dem Datenbanksystem ermöglichen würde, die Informationen eines bestimmten Kunden anhand des Namens schnell zu finden und abzurufen. Anstatt dass die Datenbank-Engine alle Zeilen und Spalten in der Tabelle durchgeht, verwendet sie daher nur den Index, um Kundeninformationen nachzuschlagen.

In diesem Lernprogramm erfahren Sie, wie Sie den CREATE INDEX-Befehl in der Oracle-Datenbank verwenden, um einen neuen Index zu initialisieren.



Oracle Create Index-Anweisung

Das Folgende zeigt die Syntax der CREATE INDEX-Anweisung in Oracle-Datenbanken:

CREATE INDEX Indexname
ON Tabellenname (Spalte1, Spalte2, ...);

Die obige Syntax erstellt einen Index namens Indexname für die Tabelle mit dem Namen Tabellenname, wobei die angegebenen Spalten (Spalte1, Spalte2 usw.) als Schlüssel für den Index verwendet werden.

In Oracle ist ein Primärschlüssel eine Spalte oder eine Gruppe von Spalten, die jede Zeile in einer Tabelle eindeutig identifiziert. Standardmäßig erstellt Oracle automatisch einen eindeutigen Index für die Primärschlüsselspalten einer Tabelle, um die Eindeutigkeitsbeschränkung zu erzwingen und die Leistung von Primärschlüsselsuchen zu verbessern.

In einigen Fällen müssen Sie jedoch möglicherweise manuell einen neuen Index für eine bestimmte Tabelle erstellen.

Sehen wir uns einige Beispiele an, wie wir dies erreichen können.

Oracle Create Index-Beispiel

Angenommen, wir haben eine Tabelle mit Mitarbeiterinformationen, wie in der folgenden Ausgabe gezeigt:

wählen Sie Vorname, Nachname, Gehalt, Einstellungsdatum aus MITARBEITER;

Oracle Create Index für eine einzelne Spalte

Angenommen, wir möchten einen Index mit der Spalte first_name erstellen. Wir können eine Abfrage wie gezeigt ausführen:

Index first_name_lookup für EMPLOYEES(FIRST_NAME) erstellen;

Diese CREATE INDEX-Anweisung erstellt einen Index namens first_name_lookup für die Tabelle EMPLOYEES, wobei die Spalte FIRST_NAME als Schlüssel für den Index verwendet wird. Dieser Index kann verwendet werden, um die Leistung von Abfragen zu verbessern, die Mitarbeiter anhand ihres Vornamens suchen.

Sobald wir den Index erstellt haben, können wir ihn verwenden, um wie gezeigt nach einem bestimmten Mitarbeiter zu suchen:

WÄHLEN Sie Vorname, Nachname, Gehalt, Einstellungsdatum
VON Mitarbeitern
WHERE vorname = 'William';

Ergebnis:

Ohne den index first_name_lookup müsste das Datenbanksystem die gesamte Tabelle EMPLOYEES durchsuchen, um alle Zeilen zu finden, in denen die Spalte FIRST_NAME gleich „William“ ist indexieren Sie mit dem Wert 'John' als Schlüssel und rufen Sie dann die angeforderten Zeilen aus der Tabelle ab, was viel schneller geht.

Sie können die beim Erstellen der Abfrage verwendeten Schritte mit dem Befehl „Plan erklären“ wie folgt anzeigen:

Erklären Sie den Plan für SELECT Vorname, Nachname, Gehalt, Einstellungsdatum
VON Mitarbeitern
WHERE vorname = 'William';

Resultierender Abfrageplan:

Beispiel 2 – Oracle Create Index mit mehreren Spalten

Auf ähnliche Weise können wir einen Index erstellen, der aus mehr als einer Spalte in einer bestimmten Tabelle besteht. Angenommen, wir möchten einen Index erstellen, der aus den Spalten first_name und last_name besteht.

Wir können den Code wie gezeigt verwenden:

Index multi_lookup für EMPLOYEES (FIRST_NAME, LAST_NAME) erstellen;

Diese CREATE INDEX-Anweisung erstellt einen Index namens multi_lookup für die Tabelle EMPLOYEES, wobei die Spalten FIRST_NAME und LAST_NAME als Schlüssel für den Index verwendet werden.

Nach der Erstellung können wir diesen Index wie in der Beispielabfrage wie gezeigt verwenden:

WÄHLEN Sie Vorname, Nachname, Gehalt, Einstellungsdatum
VON Mitarbeitern
WHERE vorname = 'William' UND nachname = 'Smith';

Ergebniswert:

Und dort haben Sie eine Methode zur Beschleunigung Ihrer Datenbankabfragen, indem Sie Indizes verwenden, um den Suchbereich einzuschränken.

Fazit

Die CREATE INDEX-Anweisung in Oracle ermöglicht es uns, einen Index für eine Tabelle zu erstellen, um die Leistung von Datenabrufvorgängen zu verbessern. Obwohl Indizes die Abfrageleistung verbessern können, führen sie jedoch auch zu Speicherplatzeinbußen, was zu einer verringerten Schreibgeschwindigkeit führt. Verwenden Sie sie nur bei Bedarf.