Installieren und Konfigurieren von Oracle Database 11g


Dieser Filter wird durch den Index nicht unterstützt. Netzwerkkonfiguration Übersicht der Schritte. Wählen Sie die Option create-service aus. Einstellung der Eigenschaft "Indiziert".

Was ist ein Index?


Wenn auf die Tabelle zugegriffen wird, bleibt nur ein Datensatz übrig. Es existiert also auf der Tabelle ein zusätzlicher Filter, durch den die Anzahl der Datensätze dramatisch reduziert wird. Dieser Filter wird durch den Index nicht unterstützt.

Alles, was wir tun müssen, ist daher im Ausführungsplan die Spalten des Filters nachzulesen und den Index um diese zu erweitern Anm.: Natürlich müssen wir auch sicherstellen, dass die zusätzlichen Spalten im Index häufig verwendet werden und nicht nur von dieser einen Abfrage. Auf diese Weise würden die Datensätze schon im Index ausgefiltert werden und nicht erst beim Zugriff auf die Tabelle.

Lassen Sie uns einen Blick auf Abb. Hier müssen wir verstehen, wie der Buffer-Cache arbeitet. Alle Datensätze in unserem Bespiel müssen zunächst im Buffer-Cache gesucht werden.

Ist der Datenblock, der den Datensatz beinhaltet, nicht im Buffer-Cache vorhanden, muss er von der Platte gelesen werden. Dazu muss meist ein anderer Datensatz im Buffer-Cache überschrieben werden. Es werden die Datensätze überschrieben, welche den niedrigsten Hitcount haben.

Der Hitcount wird immer dann erhöht, wenn ein Datenblock benötigt wird. Der Index hat 3. Für den Index bedeutet dies 57 Zugriffe pro Leaf-Block. Deshalb ist die Hitcount für die Indexblöcke natürlich höher. Dies wiederum bedeutet, dass die Indexblöcke mit einer höheren Wahrscheinlichkeit im Hauptspeicher gefunden werden als die Tabellenblöcke.

Daher ist normalerweise zu erwarten, dass die meisten der Vor einigen Jahren sollte ich eine Abfrage optimieren, die mich über Monate beschäftigte. Natürlich habe ich nicht die ganze Zeit daran gearbeitet, aber ab und zu tauchte das Problem wieder in meinen Gedanken auf und ich überlegte erneut, wie es gelöst werden könnte.

Das scheint zunächst eine sehr häufige und einfache Abfrage zu sein. Auf den zweiten Blick ist es nicht so einfach. Müller ist ein gebräuchlicher Name in der Schweiz. Bern hat als Schweizer Hauptstadt über Eigentlich wäre es der beste Weg, die beiden Suchkriterien zu kombinieren. Lassen Sie uns die verschiedenen Möglichkeiten, zwei Suchkriterien in einem Index mit den Möglichkeiten der Oracle-Datenbank zu verbinden, untersuchen: Natürlich ist das genau der Kontext, in dem solche Abfragen vorkommen.

Die meisten Konzepte, die die Kombination von Suchkriterien über Tabellengrenzen hinweg erlauben, können praktisch nur in einem Data-Warehouse angewendet werden s. Eine Lösungsvariante wäre es, Tabelle Adresse und Tabelle Person mittels einer materialisierten View zu kombinieren und dann einen zusammengesetzten Index auf dieser zu erstellen.

Das funktioniert im Prinzip, allerdings gibt es einige Voraussetzungen:. Diese Lösung kann in einigen sorgfältig ausgewählten Szenarien funktionieren, aber es ist sicherlich keine allgemein gültige Lösung. Grundsätzlich hat diese Lösung die gleichen Nachteile wie die materialisierte View.

Es ist möglich, einen mehrspaltigen Textindex über mehr als eine Tabelle zu erzeugen. Auch hier liegt die Achillesferse im Aufwand der Aktualisierung, welche über ein Programm vorgenommen werden muss. Jedes Mal, wenn mir jemand sagte: Das Ergebnis waren immer lange Gesichter und eine lange Wartezeit.

Lassen Sie uns Abb. Nur der orangefarbene Teil ist das Ergebnis. Ich kam nicht umhin, mich zu fragen: Um meine Überlegungen im Zusammenhang mit der Müller-in-Bern-Suche zu testen, habe ich ein kleines Beispiel erzeugt und versucht, diesem eine ähnliche Datenverteilung zu geben, wie sie in der Realität vorhanden ist. Ich habe das folgende Schema mit zwei Tabellen erzeugt:.

Wie man sieht, ist das Schema stark vereinfacht. Ich habe ausreichende Indexe erzeugt, damit der Optimizer nicht in seiner Wahl eingeschränkt ist. Unten sehen wir nun die Abfrage, um die es im Beispiel geht. Der klassische Ausführungsplan wäre nested loop join. Wie wir schon wissen, ist die Achillesferse des Planes der teure Zugriff auf die beiden Tabellen.

Wie nicht anders zu erwarten, hat Oracle das Problem bereits erkannt und Gegenmassnahmen eingeleitet. Oak Table Mitglied Randolf Geist schreibt: The intention of Prefetching and Batching seems to be the same — they both are targeted towards the usually most expensive part of the Nested Loop Join: The random table lookup as part of the inner row source.

Die Rowids der Zieltabelle werden innerhalb des Nested Loops gesammelt und zwischengespeichert. Ich zitiere aus [1] , Abschnitt In den folgenden Abschnitten wollen wir uns auf die Themen Index Monitoring und Index Key Compression konzentrieren, da diese Techniken wenig bekannt und teilweise unterschätzt werden.

Index Monitoring Häufig stellt sich die Frage, ob ein Index überhaupt von den Abfragen genutzt wird - speziell, wenn es darum geht, Speicher für überflüssige Indizes freizugeben.

Eine Möglichkeit, dies herauszufinden, besteht darin, Ausführungspläne zu generieren und zu analysieren. Möchte man allerdings eine generelle Aussage treffen ohne eine Statement-Analyse durchzuführen, ist die Technik "Monitoring Index Usage" hilfreich. Monitoring Index Usage ist in jeder Datenbank Edition enthalten. Die folgende Abfrage zeigt, dass der Index mittlerweile genutzt worden ist. Bitmap Indizes benötigen keine Komprimierungsalgorithmen, da diese Art von Indizes einen sehr geringen Speicherbedarf hat.

Das Prinzip der Index Key Compression beruht dabei auf der Eliminierung von sich wiederholenden Schlüssel-Werten auch Präfix genannt eines nonunique single column - oder eines unique multicolumn - Index. Zusammengesetzte Schlüssel unique multicolumn werden dabei in einen Präfix- und einen Suffix-Anteil unterteilt, wobei der Suffix-Anteil den eindeutigen Teil des Index-Schlüssels repräsentiert.

Wenn sich Schlüsselwerte im Präfix-Teil des Index wiederholen, so werden diese Werte nur einmal gespeichert und vom Suffix referenziert. Präfix- und Suffix- Werte befinden sich grundsätzlich im gleichen Block. Folgende Tabelle zeigt das Ergebnis dieser Speicherung in einer schematische Darstellung. Falls das Umsortieren der Spalten im Index möglich ist, kann dies zu höheren Komprimierungsraten führen.

Copyright © 2017 · All Rights Reserved · Maine Council of Churches