Inhaltsverzeichnis
Oracle verfügt über mehrere Indizes
Heim Datenbank Oracle Oracle verfügt über mehrere Indizes

Oracle verfügt über mehrere Indizes

Jun 10, 2022 pm 05:39 PM
oracle

Es gibt sechs Arten von Indizes in Oracle: 1. „B*“-Zahlenindex, der einen schnellen Zugriff auf eine Zeile oder eine Reihe von Zeilen basierend auf dem Schlüssel ermöglichen kann 2. Bitmap-Index, geeignet für stark repetitive und normalerweise gelesene Indizes -nur Daten; 3. Der funktionsbasierte Index speichert das Ergebnis einer Funktionsberechnung in der Spalte der Zeile. 4. Der Anwendungsdomänenindex ist ein von Ihnen selbst erstellter und gespeicherter Index. Zur Verwendung müssen Sie einen HASH-Cluster verwenden 6. Partitionieren Sie den Index, teilen Sie einen Index in mehrere Fragmente auf.

Oracle verfügt über mehrere Indizes

Die Betriebsumgebung dieses Tutorials: Windows 10-System, Oracle Version 12c, Dell G3-Computer.

Oracle verfügt über mehrere Indizes

Oracle stellt viele verschiedene Arten von Indizes zur Verwendung bereit. Einfach ausgedrückt umfasst Oracle die folgenden Indizes:

1, B*-Baumindex

Das sind, was ich „traditionelle“ Indizes nenne. Dies ist bei weitem der am häufigsten verwendete Index in Oracle und den meisten anderen Datenbanken.

B* Der Baum ist wie ein Binärbaum aufgebaut und kann basierend auf dem Schlüssel einen schnellen Zugriff auf eine Zeile oder eine Reihe von Zeilen ermöglichen, wobei normalerweise nur wenige Lesevorgänge erforderlich sind, um die richtige Zeile zu finden. Es ist jedoch wichtig zu beachten, dass das „B“ im „B*-Baum“ nicht für binär, sondern für ausgeglichen steht. Ein B*-Baumindex ist kein binärer Baum, wie Sie erfahren werden, wenn wir vorstellen, wie man einen B*-Baum physisch auf der Festplatte speichert. B*-Baumindizes haben die folgenden Untertypen:

Indexorganisierte Tabelle: Indexorganisierte Tabellen werden in einer B*-Baumstruktur gespeichert. Im Gegensatz zu Heap-Tabellen, in denen Datenzeilen unorganisiert gespeichert werden (Daten können platziert werden, solange Platz verfügbar ist), werden Daten in IOT in der Reihenfolge der Primärschlüssel gespeichert und sortiert. Für die Anwendung verhält sich das IOT wie eine „normale“ Tabelle; für den korrekten Zugriff auf das IOT ist SQL erforderlich. IOT ist am nützlichsten für die Informationserfassung, räumliche Systeme und OLAP-Anwendungen. IoT wurde im vorherigen Kapitel ausführlich besprochen.

B*tree-Cluster-Index (B*tree-Cluster-Index) Dies ist eine Variante des traditionellen B*tree-Index (mit nur geringfügigen Änderungen). B*-Tree-Clustered-Indizes werden zur Indizierung von Cluster-Schlüsseln verwendet (siehe Abschnitt „Indizierung von Cluster-Tabellen“ in Kapitel 11), daher werden sie in diesem Kapitel nicht behandelt. In herkömmlichen B*-Bäumen verweisen Schlüssel auf eine Zeile; im Gegensatz zum B*-Baum-Clustering zeigt ein Clustering-Schlüssel auf einen Block, der mehrere Zeilen enthält, die sich auf diesen Clustering-Schlüssel beziehen.

Absteigender Index: Der absteigende Index ermöglicht die Sortierung von Daten in der Indexstruktur in der Reihenfolge „von groß nach klein“ (absteigende Reihenfolge) und nicht in der Reihenfolge „klein nach groß“ (aufsteigende Reihenfolge). Wir erklären, warum absteigende Indizes wichtig sind und wie absteigende Indizes funktionieren.

Umgekehrter Schlüsselindex: Dies ist ebenfalls ein B*-Baumindex, außer dass die Bytes im Schlüssel „umgekehrt“ werden. Bei einem invertierten Schlüsselindex können Indexeinträge gleichmäßiger im Index verteilt werden, wenn der Index mit aufsteigenden Werten gefüllt wird. Wenn Sie beispielsweise eine Sequenz zum Generieren eines Primärschlüssels verwenden, generiert die Sequenz Werte wie 987500, 987501, 987502 usw. Die Werte sind sequentiell. Wenn also ein herkömmlicher B*-Baumindex verwendet würde, könnten diese Werte im selben rechten Block platziert werden, was die Konkurrenz für diesen Block erhöht. Mit dem umgekehrten Schlüssel indiziert Oracle logischerweise 205789, 105789, 005789 usw. Oracle wird die gespeicherten Daten byte-umkehren, bevor sie in den Index eingefügt werden, sodass Werte, die ursprünglich im Index möglicherweise nebeneinander lagen, nach der Byte-Umkehr weit voneinander entfernt sind. Durch die Umkehrung der Bytes werden Einfügungen in den Index über mehrere Blöcke verteilt.

2. Bitmap-Index (Bitmap-Index)

In einem B*-Baum besteht normalerweise eine Eins-zu-eins-Beziehung zwischen Indexeinträgen und Zeilen: Ein Indexeintrag zeigt auf eine Zeile. Bei Bitmap-Indizes verwendet ein Indexeintrag eine Bitmap, um gleichzeitig auf mehrere Zeilen zu verweisen. Bitmap-Indizes eignen sich für Daten, die sich stark wiederholen und normalerweise schreibgeschützt sind (stark repetitiv bedeutet, dass die Daten im Verhältnis zur Gesamtzahl der Zeilen in der Tabelle nur wenige unterschiedliche Werte haben). Stellen Sie sich eine Tabelle mit 1 Million Zeilen vor, in der jede Spalte nur drei mögliche Werte hat: Y, N und NULL. Wenn Sie beispielsweise häufig zählen müssen, wie viele Zeilen den Wert Y haben, eignet sich dies zum Erstellen eines Bitmap-Index. Dies bedeutet jedoch nicht, dass kein Bitmap-Index erstellt werden kann, wenn eine Spalte in dieser Tabelle 11.000 verschiedene Werte enthält. Natürlich kann auch für diese Spalte ein Bitmap-Index erstellt werden. In einer OLTP-Datenbank können Bitmap-Indizes aufgrund von Parallelitätsproblemen nicht berücksichtigt werden (wir werden später darauf eingehen). Beachten Sie, dass für Bitmap-Indizes Oracle Enterprise oder Personal Edition erforderlich ist.

Bitmap-Join-Index: Dies bietet eine Möglichkeit, Daten in einer Indexstruktur (anstelle einer Tabelle) zu denormalisieren. Betrachten Sie beispielsweise die einfachen EMP- und DEPT-Tabellen. Jemand könnte diese Frage stellen: „Wie viele Personen arbeiten in der Abteilung in Boston?“ Um die Anzahl der Mitarbeiter in der Abteilung mit dem LOC-Wert Boston zu zählen, müssen Sie normalerweise a ausfüllen Tabellenverknüpfungen und LOC-Spaltenverknüpfungen mit EMP-Datensätzen, um diese Frage zu beantworten. Mithilfe eines Bitmap-Join-Index können Sie die LOC-Spalte in der EMP-Tabelle indizieren.

3. Funktionsbasierter Index

Dies sind B*-Baumindizes oder Bitmap-Indizes, die das Ergebnis einer Funktionsberechnung in der Spalte der Zeile speichern, anstatt die Daten selbst in der Spalte zu speichern. Sie können sich einen funktionsbasierten Index als einen Index für eine virtuelle Spalte (oder abgeleitete Spalte) vorstellen; mit anderen Worten: Die Spalte wird nicht physisch in der Tabelle gespeichert. Funktionsbasierte Indizes können verwendet werden, um Abfragen wie SELECT * FROM T W HERE FUNCTION(DATABASE_COLUMN) = SAME_VALUE zu beschleunigen, da der Wert FUNCTION(DATABASE_COLUMN) im Voraus berechnet und im Index gespeichert wurde.

4. Anwendungsdomänenindex (Anwendungsdomänenindex)

Der Anwendungsdomänenindex ist ein Index, den Sie selbst erstellen und speichern und der in Oracle oder außerhalb von Oracle gespeichert werden kann. Sie müssen dem Optimierer mitteilen, wie selektiv der Index ist und wie teuer seine Ausführung ist, und der Optimierer entscheidet anhand der von Ihnen bereitgestellten Informationen, ob er Ihren Index verwendet. Oracle-Textindizes sind ein Beispiel für einen Anwendungsdomänenindex; Sie können auch Ihren eigenen mit denselben Tools erstellen, die Sie zum Erstellen von Oracle-Textindizes verwenden. Es sei darauf hingewiesen, dass der hier erstellte „Index“ nicht die Verwendung einer herkömmlichen Indexstruktur erfordert. Beispielsweise verwenden Oracle-Textindizes eine Reihe von Tabellen, um ihre Indexkonzepte zu implementieren.

5. HASH-Index

Bei Verwendung des HASH-Index müssen Sie den HASH-Cluster verwenden. Wenn Sie einen Cluster oder HASH-Cluster erstellen, definieren Sie auch einen Clusterschlüssel. Dieser Schlüssel teilt Oracle mit, wie die Tabelle im Cluster gespeichert werden soll. Beim Speichern von Daten werden alle Zeilen, die sich auf diesen Clusterschlüssel beziehen, in einem Datenbankblock gespeichert. Wenn die Daten im selben Datenbankblock gespeichert sind und ein HASH-Index verwendet wird, kann Oracle auf die Daten zugreifen, indem es eine HASH-Funktion und E/A ausführt – und indem es einen B-Tree-Index der Binärhöhe 4 anwendet, den Sie verwenden müssen 4 I/O beim Abrufen der Daten.

Tipps: HASH-Indizes sind sehr nützlich, wenn Einschränkungen bestehen (die Angabe eines bestimmten Werts und nicht eines Wertebereichs ist erforderlich).

6. Partitionierter Index

Ein partitionierter Index unterteilt einen Index einfach in mehrere Fragmente, sodass auf kleinere Fragmente zugegriffen werden kann und diese Fragmente auf verschiedenen Festplatten gespeichert werden können (E/A-Probleme werden vermieden). Sowohl B-Nummern-Indizes als auch Bitmap-Indizes können partitioniert werden, HASH-Indizes können jedoch nicht partitioniert werden.

Es gibt zwei Arten von partitionierten Indizes: lokale partitionierte Indizes und globale partitionierte Indizes. Jeder Typ hat zwei Untertypen: mit Präfix und ohne Präfix. Wenn ein Bitmap-Index verwendet wird, muss es sich um einen lokalen Index handeln.

Der Hauptgrund für die Partitionierung des Index besteht darin, die Größe des zu lesenden Index zu reduzieren. Darüber hinaus kann die Platzierung der Partitionen in verschiedenen Tabellenbereichen die Verfügbarkeit und Zuverlässigkeit der Partitionen verbessern.

Empfohlenes Tutorial: „Oracle Video Tutorial

Das obige ist der detaillierte Inhalt vonOracle verfügt über mehrere Indizes. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Funktion zur Berechnung der Anzahl der Tage zwischen zwei Daten in Oracle Funktion zur Berechnung der Anzahl der Tage zwischen zwei Daten in Oracle May 08, 2024 pm 07:45 PM

Die Funktion in Oracle zum Berechnen der Anzahl der Tage zwischen zwei Daten ist DATEDIFF(). Die spezifische Verwendung ist wie folgt: Geben Sie die Zeitintervalleinheit an: Intervall (z. B. Tag, Monat, Jahr) Geben Sie zwei Datumswerte an: Datum1 und Datum2DATEDIFF(Intervall, Datum1, Datum2) Gibt die Differenz in Tagen zurück

Wie lange werden Oracle-Datenbankprotokolle aufbewahrt? Wie lange werden Oracle-Datenbankprotokolle aufbewahrt? May 10, 2024 am 03:27 AM

Der Aufbewahrungszeitraum von Oracle-Datenbankprotokollen hängt vom Protokolltyp und der Konfiguration ab, einschließlich: Redo-Protokolle: Wird durch die maximale Größe bestimmt, die mit dem Parameter „LOG_ARCHIVE_DEST“ konfiguriert wird. Archivierte Redo-Protokolle: Bestimmt durch die maximale Größe, die durch den Parameter „DB_RECOVERY_FILE_DEST_SIZE“ konfiguriert wird. Online-Redo-Logs: nicht archiviert, gehen beim Neustart der Datenbank verloren und der Aufbewahrungszeitraum stimmt mit der Instanzlaufzeit überein. Audit-Protokoll: Wird durch den Parameter „AUDIT_TRAIL“ konfiguriert und standardmäßig 30 Tage lang aufbewahrt.

Die Reihenfolge der Schritte zum Starten der Oracle-Datenbank ist Die Reihenfolge der Schritte zum Starten der Oracle-Datenbank ist May 10, 2024 am 01:48 AM

Die Startsequenz der Oracle-Datenbank ist: 1. Überprüfen Sie die Voraussetzungen. 3. Starten Sie die Datenbankinstanz. 6. Überprüfen Sie den Datenbankstatus . Aktivieren Sie den Dienst (falls erforderlich). 8. Testen Sie die Verbindung.

So verwenden Sie das Intervall in Oracle So verwenden Sie das Intervall in Oracle May 08, 2024 pm 07:54 PM

Der Datentyp INTERVAL wird in Oracle zur Darstellung von Zeitintervallen verwendet. Die Syntax lautet INTERVAL <Präzision> <Einheit>. Sie können Additions-, Subtraktions-, Multiplikations- und Divisionsoperationen verwenden, um INTERVAL zu betreiben, was für Szenarien wie das Speichern von Zeitdaten geeignet ist Berechnung von Datumsdifferenzen.

Wie viel Speicher benötigt Oracle? Wie viel Speicher benötigt Oracle? May 10, 2024 am 04:12 AM

Die von Oracle benötigte Speichermenge hängt von der Datenbankgröße, dem Aktivitätsniveau und dem erforderlichen Leistungsniveau ab: zum Speichern von Datenpuffern, Indexpuffern, zum Ausführen von SQL-Anweisungen und zum Verwalten des Datenwörterbuch-Cache. Die genaue Menge hängt von der Datenbankgröße, dem Aktivitätsgrad und dem erforderlichen Leistungsniveau ab. Zu den Best Practices gehören das Festlegen der geeigneten SGA-Größe, die Dimensionierung von SGA-Komponenten, die Verwendung von AMM und die Überwachung der Speichernutzung.

So sehen Sie die Häufigkeit des Vorkommens eines bestimmten Zeichens in Oracle So sehen Sie die Häufigkeit des Vorkommens eines bestimmten Zeichens in Oracle May 09, 2024 pm 09:33 PM

Um die Anzahl der Vorkommen eines Zeichens in Oracle zu ermitteln, führen Sie die folgenden Schritte aus: Ermitteln Sie die Gesamtlänge einer Zeichenfolge. Ermitteln Sie die Länge der Teilzeichenfolge, in der ein Zeichen vorkommt. Zählen Sie die Anzahl der Vorkommen eines Zeichens, indem Sie die Länge der Teilzeichenfolge subtrahieren von der Gesamtlänge.

So ersetzen Sie eine Zeichenfolge in Oracle So ersetzen Sie eine Zeichenfolge in Oracle May 08, 2024 pm 07:24 PM

Die Methode zum Ersetzen von Zeichenfolgen in Oracle besteht in der Verwendung der REPLACE-Funktion. Die Syntax dieser Funktion lautet: REPLACE(string, search_string, replacement_string). Verwendungsschritte: 1. Identifizieren Sie die zu ersetzende Teilzeichenfolge. 2. Bestimmen Sie die neue Zeichenfolge, um die Teilzeichenfolge zu ersetzen. 3. Verwenden Sie zum Ersetzen die REPLACE-Funktion. Zur erweiterten Verwendung gehören: Mehrfachersetzungen, Berücksichtigung der Groß-/Kleinschreibung, Ersetzung von Sonderzeichen usw.

Anforderungen an die Hardwarekonfiguration des Oracle-Datenbankservers Anforderungen an die Hardwarekonfiguration des Oracle-Datenbankservers May 10, 2024 am 04:00 AM

Anforderungen an die Hardwarekonfiguration des Oracle-Datenbankservers: Prozessor: Multi-Core, mit einer Hauptfrequenz von mindestens 2,5 GHz. Für große Datenbanken werden 32 Kerne oder mehr empfohlen. Speicher: Mindestens 8 GB für kleine Datenbanken, 16–64 GB für mittelgroße Datenbanken, bis zu 512 GB oder mehr für große Datenbanken oder hohe Arbeitslasten. Speicher: SSD- oder NVMe-Festplatten, RAID-Arrays für Redundanz und Leistung. Netzwerk: Hochgeschwindigkeitsnetzwerk (10 GbE oder höher), dedizierte Netzwerkkarte, Netzwerk mit geringer Latenz. Sonstiges: Stabile Stromversorgung, redundante Komponenten, kompatibles Betriebssystem und Software, Wärmeableitung und Kühlsystem.

See all articles