Index DB-Tabelle wird nicht gezogen

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Alle Fragen rund um Basisthemen
13 Beiträge • Seite 1 von 1
13 Beiträge Seite 1 von 1

Index DB-Tabelle wird nicht gezogen

Beitrag von gast ( / / 0 / 3 ) »
Hallo,

ich habe für eine kundeneigene Datenbanktabelle einen Sekundär-Index angelegt und aktiviert.
Der Index besteht, ausser dem Mandanten, nur noch aus einem weiteren Feld.
Der Index ist aktiviert, wird aber nicht gezogen (SQL-Trace), die Datenbank ist Oracle, der Indey ist non-unique für alle DB angelegt.

Wer kann mit Tipps für die Fehlersuche geben?

Danke

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Hallo,

wie sieht denn der SQL-Befehl dazu aus. Möglicherweise musst Du die Reihenfolge der Bedingungen ändern, damit der Optimizer den Index benutzen kann.

Code: Alles auswählen.

Beispiel:
Tabelle:
  mandt,
  first_key,
  second_key,
  index,
  field1,
  field2.

Index:
  mandt,
  index.

SQL:
SELECT * 
       FROM tabelle
       INTO TABLE itab
       WHERE field2 EQ '???'
       AND   index  EQ 'ind'. 
Mit dieser Reihenfolge wird der Index nicht gezogen, weil field2 die höhere Gewichtung bekommt.
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Beitrag von Kowi (ForumUser / 28 / 0 / 0 ) »
Hi,

Ist denn die Index-Statistik schon aktualisiert? Wenn nicht, dann müßte noch über die SE38 "RSANAORA" für das Indexobjekt ausgeführt werden.

Gruß,
Kowi

Beitrag von RiffRaff (Specialist / 379 / 0 / 1 ) »
Hallo,

es kann auch sein, daß der Optimizer schlicht und einfach sagt: momentan ist der Index sinnlos
:wink:
==> Sprich: wenn zB in der Tabelle nur 5 Datensätze sind, wird der Optimizer nie einen Index ziehen. Da sagt er: da bin ich ja viel schneller wenn ich gleich einen full table scan mache und mir nachträglich die richtigen raussuche

mfg
Richard

Beitrag von Haubi (Expert / 625 / 20 / 30 ) »
ereglam hat geschrieben:Hallo,

wie sieht denn der SQL-Befehl dazu aus. Möglicherweise musst Du die Reihenfolge der Bedingungen ändern, damit der Optimizer den Index benutzen kann.

Code: Alles auswählen.

Beispiel:
Tabelle:
  mandt,
  first_key,
  second_key,
  index,
  field1,
  field2.

Index:
  mandt,
  index.

SQL:
SELECT * 
       FROM tabelle
       INTO TABLE itab
       WHERE field2 EQ '???'
       AND   index  EQ 'ind'. 
Mit dieser Reihenfolge wird der Index nicht gezogen, weil field2 die höhere Gewichtung bekommt.
Populärer Irrtum. Der Optimizer bastelt sich das so hin, wie er es braucht.

Gruss,
Haubi
Das ABAP Kochbuch ab sofort bei Amazon...

I'd rather write code that writes code than write code...

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Haubi hat geschrieben:
ereglam hat geschrieben:...
Populärer Irrtum. Der Optimizer bastelt sich das so hin, wie er es braucht.

Gruss,
Haubi
Danke für den Hinweis.
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Beitrag von RiffRaff (Specialist / 379 / 0 / 1 ) »
Hallo,

are you sure Haubi
Dann hab ich auch was dazugelernt. War bisher auch der Meinung von ereglam.



PS. am Rande. wie bekommt mann eigentlich das:
ereglam hat folgendes geschrieben::...........
hin???

mfg
Richard

Beitrag von Haubi (Expert / 625 / 20 / 30 ) »
RiffRaff hat geschrieben: PS. am Rande. wie bekommt mann eigentlich das:
ereglam hat folgendes geschrieben::...........
hin???
Mittels quote="<user>" (natürlich in eckigen Klammern). Kommt automatisch wenn Du auf den Button Bild klickst.

Und ja, ich bin sicher... :wink:

Ich halte es bei dem beschriebenen Problem eher für wahrscheinlich, dass
a) die Tabelle zu klein ist,
b) die Statistiken nicht aktuell sind (Moin Kowi...) oder
c) der Index verclustert und somit quasi unbenutzbar ist.

Gruss,
Haubi
Das ABAP Kochbuch ab sofort bei Amazon...

I'd rather write code that writes code than write code...

Beitrag von gast ( / / 0 / 3 ) »
Hallo,

es sind 240 000 Einträge in der Tabelle.

GRuss
RiffRaff hat geschrieben:Hallo,

es kann auch sein, daß der Optimizer schlicht und einfach sagt: momentan ist der Index sinnlos
:wink:
==> Sprich: wenn zB in der Tabelle nur 5 Datensätze sind, wird der Optimizer nie einen Index ziehen. Da sagt er: da bin ich ja viel schneller wenn ich gleich einen full table scan mache und mir nachträglich die richtigen raussuche

mfg
Richard

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
dann poste doch bitte den wichtigen Teil der Tabellen- und Indexdefinition, sowie den SQL-Befehl.
Ohne kommen wir (scheinbar) nicht weiter.
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Beitrag von Haubi (Expert / 625 / 20 / 30 ) »
Ich würde pauschal mal den RSANAORA auf den Index abschießen (wie schon von Kowi vorgeschlagen).

SE38, Report "RSANAORA", Ausführen ( F8 )
Radiobutton "Index"
Object = <tabelle>~<index>
Function = "Compute"

Und danach nochmal probieren.

Gruss,
Haubi
Das ABAP Kochbuch ab sofort bei Amazon...

I'd rather write code that writes code than write code...

Beitrag von gast ( / / 0 / 3 ) »
Hallo,

danke für die Info.
Das war es.
Kowi hat geschrieben:Hi,

Ist denn die Index-Statistik schon aktualisiert? Wenn nicht, dann müßte noch über die SE38 "RSANAORA" für das Indexobjekt ausgeführt werden.

Gruß,
Kowi

Beitrag von Frank Dittrich (Expert / 674 / 0 / 15 ) »
ereglam hat geschrieben:dann poste doch bitte den wichtigen Teil der Tabellen- und Indexdefinition, sowie den SQL-Befehl.
Ohne kommen wir (scheinbar) nicht weiter.
Und den Execution plan aus dem SQL trace, sowie die Statistik-Infos zu dem Index.

Nebenbei: Oracle läuft doch mit den Cost based Optimizer, nicht mit dem Rule based Optimizer, oder?

(Und den Mandanten würde ich entweder ganz rauslassen oder allenfalls als 2. Feld in den Index aufnehmen.)

Seite 1 von 1

Vergleichbare Themen

1
Antw.
2257
Views
Upgrade 6.04->6.07 Index HKC Tabelle COBRB fehlt
von Thomas R. » 07.10.2015 15:21 • Verfasst in Basis
5
Antw.
2549
Views
Dirty assign auf Feld in interner Tabelle mit Index
von Romaniac » 06.12.2019 12:31 • Verfasst in ABAP® Core
1
Antw.
232
Views
Eintrag in einer internen Tabelle mit dem größten Index auslesen.
von kaim77 » 05.02.2022 09:56 • Verfasst in ABAP® für Anfänger
1
Antw.
1673
Views
Kondition wird falsch gezogen
von nikibert » 12.09.2008 09:54 • Verfasst in Sales and Distribution
0
Antw.
1235
Views
SALV - Layout wird nicht gezogen
von ralf.wenzel » 15.02.2019 16:16 • Verfasst in ABAP Objects®

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 4 Tagen von Lucyalison 1 / 71
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 111
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 141