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'.
Populärer Irrtum. Der Optimizer bastelt sich das so hin, wie er es braucht.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.Mit dieser Reihenfolge wird der Index nicht gezogen, weil field2 die höhere Gewichtung bekommt.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'.
Danke für den Hinweis.Haubi hat geschrieben:Populärer Irrtum. Der Optimizer bastelt sich das so hin, wie er es braucht.ereglam hat geschrieben:...
Gruss,
Haubi
Mittels quote="<user>" (natürlich in eckigen Klammern). Kommt automatisch wenn Du auf den ButtonRiffRaff hat geschrieben: PS. am Rande. wie bekommt mann eigentlich das:
ereglam hat folgendes geschrieben::...........
hin???
RiffRaff hat geschrieben:Hallo,
es kann auch sein, daß der Optimizer schlicht und einfach sagt: momentan ist der Index sinnlos
![]()
==> 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
Und den Execution plan aus dem SQL trace, sowie die Statistik-Infos zu dem Index.ereglam hat geschrieben:dann poste doch bitte den wichtigen Teil der Tabellen- und Indexdefinition, sowie den SQL-Befehl.
Ohne kommen wir (scheinbar) nicht weiter.