Eindeutiger Oracle-Index

Eindeutiger Oracle Index



Die Datenbankleistung ist eine der wesentlichen Aufgaben eines Datenbankentwicklers. Wenn Sie sicherstellen, dass Ihre Datenbank mit optimaler Leistung ausgeführt wird, kann dies erhebliche Auswirkungen auf die Anwendungen haben, die diese Datenbank lesen oder in sie schreiben.

Obwohl es zahlreiche Möglichkeiten zur Verbesserung der Datenbankleistung gibt, ist eine Funktion fast universell für jede Datenbank. Datenbankindizes sind Datenstrukturen oder Objekte, die verwendet werden, um die Geschwindigkeit des Datenabrufs aus der Tabelle zu erhöhen.

Bei richtiger Anwendung können Datenbankindizes die Geschwindigkeit einer Abfrage um fast die Hälfte reduzieren, abhängig von den Zieldaten, dem Layout, den verfügbaren Ressourcen usw.







In diesem Lernprogramm erfahren Sie, wie Sie mit eindeutigen Indizes in Oracle-Datenbanken arbeiten, um die Verfügbarkeit doppelter Werte in einer indizierten Spalte zu verhindern.



Eindeutiger Oracle-Index

Wir können einen eindeutigen Index verwenden, um sicherzustellen, dass keine doppelten Zeilen in einer bestimmten Spalte gespeichert werden. Wenn die Spalte eines bestimmten Index eine Eindeutigkeitsregel enthält, führt der Versuch, zwei Zeilen mit einem ähnlichen Wert in dieser Spalte hinzuzufügen, zu einem Fehler, der auf eine Verletzung der Eindeutigkeitsbeschränkung hinweist.



In Oracle können wir mit der CREATE UNIQUE INDEX-Anweisung einen eindeutigen Index erstellen, wie im Folgenden gezeigt:





CREATE UNIQUE INDEX index_name ON table_name ( Säulen ) ;

Die im Index enthaltenen Spalten akzeptieren keine doppelten Zeilen.

Beispiel für eine einzigartige Tabellenillustration

Um zu demonstrieren, wie ein eindeutiger Index erstellt und verwendet wird, nehmen Sie die folgende Tabelle:



WÄHLEN * VON sample_data;

Ausgabe :

Erstellen Sie einen eindeutigen Index für die Spalte First_Name

Die folgende Beispielanweisung zeigt, wie Sie mithilfe der Spalte first_name einen eindeutigen Index erstellen:

Erstellen Sie einen eindeutigen Index first_name_unique für sample_data ( Vorname ) ;

Indem wir diesen Index aktivieren, können wir nicht mehr als eine Zeile mit demselben Vornamen einfügen.

Nehmen Sie zum Beispiel die folgende Insert-Anweisung:

einfügen in sample_data ( Ich würde , Vorname, IP-Adresse, BTC-Adresse, Kreditkarte, Kennung )
Werte ( elf , 'Wallas' , '169.158.70.77' , '1CNz5d1d5SC8SaR6dFSVihwztqYx5Fg77q' , '4017955174552' ,
'26811d77-0a3a-4397-bc33-f7835f7c7ab9' ) ;

Wenn wir die angegebene Insert-Anweisung ausführen, sollten wir einen Fehler erhalten, wie im Folgenden gezeigt:

[ 23000 ] [ 1 ] ORA-00001: eindeutige Einschränkung ( HR.FIRST_NAME_UNIQUE ) verletzt

Wie wir sehen können, verletzt das Einfügen des gegebenen Werts die Eindeutigkeitsbeschränkung für die Spalte first_name.

Erstellen Sie einen eindeutigen Index mit zwei Spalten

Wir können auch einen eindeutigen Index haben, der aus mehr als einer Spalte besteht. Im folgenden Beispiel erstellen wir einen eindeutigen Index mit den Spalten first_name und io_address:

Erstellen Sie einen eindeutigen Index verify_columns für sample_data ( Vorname, IP-Adresse ) ;

Ebenso führt das Hinzufügen doppelter Werte für die Spalte first_name oder ip_address zu eindeutigen Indexverletzungsfehlern.

Automatische eindeutige Indizes

Haben Sie sich jemals gefragt, was passiert, wenn Sie eine Tabellenspalte mit einem Primärschlüssel oder einer eindeutigen Einschränkung deklarieren?

Einfach ausgedrückt: Wenn Sie eine Spalte als Primärschlüssel der Tabelle festlegen oder einer bestimmten Spalte eine eindeutige Einschränkung zuweisen, erstellt die Datenbank-Engine automatisch einen eindeutigen Index für diese Spalte.

Dadurch wird sichergestellt, dass kein doppelter Wert in diese Spalte eingefügt wird.

Nehmen Sie zum Beispiel die folgende Aussage:

Tabelle sample_data erstellen
(
Ich würde Anzahl,
Vorname varchar2 ( fünfzig ) ,
IP-Adresse varchar2 ( zwanzig ) ,
btc_address varchar2 ( fünfzig ) ,
credit_card varchar2 ( fünfzig ) ,
Kennung varchar2 ( 40 ) ,
Einschränkung sample_pk Primärschlüssel ( Ich würde )
) ;

Im vorherigen Beispiel erstellen wir eine Tabelle und legen die ID-Spalte als Primärschlüssel der Tabelle fest. Um dann die eindeutige Einschränkung anzuzeigen, die dieser Spalte zugeordnet ist (automatisch generiert), können wir den folgenden Befehl ausführen:

wählen index_name, index_type, Sichtbarkeit, Status, TABLE_NAME
von all_indexes wobei TABLE_NAME = 'BEISPIELDATEN' ;

Ergebnisse :
In diesem Fall können wir den eindeutigen Index sehen, der von der Datenbank-Engine für die ID-Spalte erstellt wird.

Fazit

In diesem Handbuch haben Sie gelernt, wie Sie die eindeutigen Indizes in der Oracle-Datenbank erstellen und verwenden. Außerdem haben Sie gelernt, was passiert, wenn Sie einer Tabellenspalte einen Primärschlüssel oder eine Eindeutigkeitsbedingung zuweisen.