Offensichtlich wirkt sich die Beibehaltung mehrerer verschiedener Indizes negativ auf die Leistung beim Einfügen und Löschen aus. Wie wäre es mit der Abfrageleistung: Ist es überhaupt sinnvoll, zu viele Indizes in einer Tabelle zu halten? Verbessert sich die Abfrageleistung in jedem Fall, wenn ein Index hinzugefügt wird (natürlich für Abfragen, bei denen der Index verwendet wird), oder ist es sogar möglich, dass sich die Abfrageleistung bei zu vielen Indizes verschlechtert, da alle Indizes herangezogen werden müssen, um den Index zu erhalten Ergebnis?
Falls eine Tabelle verschiedene Indizes enthält: Werden alle Indizes berücksichtigt oder nur die besten aus Sicht des Optimierers? Implementiert Oracle mehrdimensionale Indizes?
oracle
performance
index
Paweloque
quelle
quelle
Antworten:
Die Erstellung des Plans wird geringfügig länger dauern, wenn mehr Indizes zu berücksichtigen sind, aber ich bezweifle, dass der Unterschied messbar signifikant wäre. Die Gründe für das Löschen eines Indexes führen die Abfrageleistung nicht auf. Auf der anderen Seite sollten Sie im Allgemeinen keine Indizes erstellen, es sei denn, Sie wissen, dass sie verwendet werden, um eine Abfrage effizienter zu gestalten.
Im Oracle Concepts Guide finden Sie die Kriterien zum Erstellen eines Index.
Alle Indizes werden in dem Sinne berücksichtigt, dass alle Indizes für die Tabellen in der Abfrage überprüft werden, um festzustellen, ob sie verwendet werden können. Diejenigen, die sein könnten, werden weiter untersucht, um den Nutzen zu bestimmen.
quelle
Solange Ihre Statistiken aktuell sind, sollte der kostenbasierte Optimierer sinnvolle Entscheidungen darüber treffen, welche Indizes verwendet werden sollen. Wenn dies nicht der Fall ist, ist es an der Zeit, Hinweise zu verwenden . Es wird niemals ein Index für eine Spalte abgefragt, die zur Erfüllung der Abfrage nicht erforderlich ist.
quelle
Ich fand dies in der Auswahl einer Indexstrategie der Handbuch Anwendungsentwickler unter . Auf dieser Seite geht es um die Auswahl einer Indexstrategie:
quelle