In Oracle bezieht sich Index-Flipping auf die Byte-Umkehr des Indexschlüsselwerts der Indexspalte beim Erstellen eines Index, wodurch der Zweck der verteilten Speicherung verschiedener untergeordneter Knotenblöcke erreicht wird. Es handelt sich um einen Zweig des „B-Tree“-Index. Mit dem umgekehrten Index können die Schlüsselwerte der Indexspalten umgekehrt und die sequentiellen Schlüsselwerte auf verschiedene Blattblöcke verteilt werden, wodurch die Konkurrenz um Indexblöcke verringert wird.
Die Betriebsumgebung dieses Tutorials: Windows 10-System, Oracle Version 12c, Dell G3-Computer.
Als Zweig des B-Tree-Index führt der Reverse-Index beim Erstellen des Index hauptsächlich eine Byte-Umkehr für den Indexschlüsselwert durch Blatt
Unterknotenblöcke.
Das Problem, auf das der umgekehrte Index abzielt
Bei Verwendung des herkömmlichen B-Tree-Index werden die entsprechenden Indexschlüsselwerte grundsätzlich im selben Blattblock verteilt, wenn die Indexspalten der Reihe nach generiert werden. Wenn Benutzer diese Spalte bearbeiten, kommt es unweigerlich zu Konflikten um Indexblöcke.
Verwenden Sie einen invertierten Index, um die Schlüsselwerte der Indexspalte umzukehren, um die sequentiellen Schlüsselwerte auf verschiedene Blattblöcke zu verteilen und so die Konkurrenz um Indexblöcke zu reduzieren.
Zum Beispiel: Schlüsselwerte 1001, 1002, 1003, nach der Invertierung sind sie 1001, 2001, 3001 und werden dann auf nicht verwendete Blattknotenblöcke verteilt.
Beim Laden einiger geordneter Daten wird der Index definitiv auf einige Engpässe im Zusammenhang mit E/A stoßen. Während des Datenladens werden einige Teile des Index und der Festplatte zwangsläufig viel häufiger verwendet als andere. Um dieses Problem zu lösen, kann der Indextabellenbereich auf einer Festplattenarchitektur gespeichert werden, die die Dateien physisch auf mehrere Festplatten aufteilen kann.
Um dieses Problem zu lösen, bietet Oracle auch eine Methode zum Umkehren des Schlüsselindex. Wenn Daten mit einem umgekehrten Schlüsselindex gespeichert werden, sind die Werte der Daten das Gegenteil der ursprünglich gespeicherten Werte. Auf diese Weise werden die Daten 1234, 1235 und 1236 als 4321, 5321 und 6321 gespeichert. Das Ergebnis ist, dass der Index für jede neu eingefügte Zeile einen anderen Indexblock aktualisiert.
Die Umkehrschlüsselverarbeitung kann nicht für Bitmap-Indizes und indexorganisierte Tabellen durchgeführt werden.
Tipp:Wenn Ihre Festplattenkapazität begrenzt ist und Sie viele geordnete Ladevorgänge ausführen müssen, können Sie die Reverse-Key-Indizierung verwenden.
Sie können keine invertierten Schlüsselindizes mit Bitmap-Indizes oder indexorganisierten Tabellen verwenden.
ORACLE DBA-Übung: Erstellen Sie einen Reverse-Keyword-IndexBei großen Online-Transaktionsverarbeitungssystemen werden die Primärschlüssel dieser Tabellen durch Seriennummern generiert und es gibt Indizes darauf. Daher können benachbarte Indexdatensätze im selben Datenblock vorhanden sein, was zu einem Wettbewerb um Datenblöcke führt. Mit der Zeit werden alte nutzlose Daten kontinuierlich gelöscht und neue nützliche Daten in diese Tabellen eingefügt. Offensichtlich handelt es sich bei den gelöschten Daten um alte Daten mit einer kleinen Seriennummer, während die eingefügten Daten eine neu generierte Seriennummer haben eine große Zahl sein), was ein weiteres ernstes Problem verursacht: Das heißt, der Indexbaum ist auf die Seite mit größeren Sequenznummern ausgerichtet, was die Tiefe des Baums vertieft und die Systemeffizienz verringert.
Um die oben genannten Probleme zu lösen, hat Oracle den invertierten Schlüsselwortindex eingeführt. Die umgekehrte Schlüsselwortindizierung wird erreicht, indem die Reihenfolge jedes Bytes des Schlüsselworts (Seriennummer) umgekehrt wird und der Index dann neu erstellt wird. Ein Beispiel ist wie folgt:
Wie aus dem Obigen ersichtlich ist, ist die ursprüngliche angrenzende Bestellnummer nach der Umkehrung nicht mehr benachbart. Auf diese Weise kann die angrenzende Bestellnummer auf verschiedene Datenblöcke verteilt werden Problem ist leicht zu lösen.
Aber die Dinge sind immer zweigeteilt, und es gibt auch Probleme mit dem Reverse-Index-Schlüsselwort. Beispielsweise treten Probleme auf, wenn Sie Bereichsabfragen für Tabellen mit umgekehrten Schlüsselindizes durchführen. Bei der normalen Indizierung sollten Indexdatensätze, die die Bedingungen erfüllen, in denselben oder benachbarten Datenblöcken platziert werden, was sehr schnell geht. Nach Verwendung des umgekehrten Schlüsselwortindex wurden die ursprünglichen benachbarten Indexdatensätze, die die Bedingungen erfüllen, jedoch in mehrere verstreut Bei Datenblöcken besteht die einzige Möglichkeit, den Abfragevorgang abzuschließen, darin, einen vollständigen Tabellenscan durchzuführen. Daher muss bei der Entscheidung, ob ein Reverse-Keyword-Index verwendet werden soll, unterschieden werden, ob der Einfügevorgang oder die Bereichsabfrage wichtig ist.
Empfohlenes Tutorial: „
Oracle Video TutorialDas obige ist der detaillierte Inhalt vonWas ist Oracle-Indexinversion?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!