Zum Inhalt springen

ORACLE: Index-Verwendung bei Selektion ">"


meht

Empfohlene Beiträge

Hi,

ich mache einen einfachen selekt auf eine Tabelle:

SELECT * FROM table WHERE creation_date > 20100416164036513;

Die Spalte "creation_date" ist indiziert, der Index wird aber nicht gezogen.

Der Ausführungsplan sieht so aus:

QUERY_PLAN

TABLE ACCESS FULL table

Wenn ich den select mit "=" starte, zieht Oracle den Index:

SELECT * FROM table WHERE creation_date = 20100416164036513;

TABLE ACCESS BY INDEX ROWID table

INDEX RANGE SCAN IDX$$_164B0001

Muss ich bei "größer als" anders indizieren, oder macht die Verwendung eines Index für den Optimierer keinen Sinn, da zu viele Zeilen gefunden werden?

Danke!

Bearbeitet von meht
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

kann natürlich sein, dass die Kosten für einen Full Table Scan niedriger sind als für die Benutzung des Indexes. Vielleicht fehlen Statistiken zu dem Index?

Ansonsten versuch mal einen Hint, damit der Index auf jeden Fall genutzt wird, und vergleiche die Kosten mit dem FTS:

OTN Discussion Forums : use Hint to force using index does not ...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hier werden gleich zwei Fehler gemacht.

1. Du speicherst ein Datum als String ab. Warum?

2. Du gehst davon aus, dass ein Indexzugriff immer schneller ist als ein FTS.

Vergleiche einen Index mit einem Stichwortverzeichnis. Wenn Du nur zu ein paar Wörtern die Inhalte heraussuchen möchtest, geht das über das Stichwortverzeichnis natürlich sehr schnell. Musst Du aber für sehr viele Wörter nachschlagen, kommt Du irgendwann an einen Punkt, an dem es schneller ist, dass Buch einfach von vorne bis hintern durchzublättern anstatt für jedes Wort einzeln nachzuschlagen.

Der Optimizer greift, davon abgesehen, noch auf einige Feinheiten wie Histogramme, Cachverhalten, Geschwindigkeit der Platten und CPUs etc. zu, die in die Berechnung mit einfließen.

Dim

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...