Index im where Teil

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
7 Beiträge • Seite 1 von 1
7 Beiträge Seite 1 von 1

Index im where Teil

Beitrag von kaim77 (Specialist / 172 / 0 / 0 ) » 10.09.2014 08:54
Guten Morgen,
ich habe mal meinen Report durchprüfen lassen. Dabei wird als Fehler gemeldet, dass kein Indexfeld im where benutzt wird. Ich habe ein Index angelegt. Ich wil aber nicht nach diesem Indexfeld selektieren. WIe kann ich dieses Indexfeld ins where-Teil hineinbringen.
Danke und viele Grüße
Kaim


Re: Index im where Teil

Beitrag von PeterPaletti (Specialist / 136 / 21 / 26 ) » 10.09.2014 11:51
Ist mir jetzt nicht ganz klar, was du eigentlich willst.
Du willst nicht nach dem Indexfeld selektieren, das Indexfeld aber in die where-Bedingung aufnehmen. Wozu soll das gut sein?

Du könntest spaßeshalber für das Index-Feld eine Range-Tabelle anlegen, diese aber leer lassen.
Dann könntest du WHERE indexfeld IN <Range> selektieren.
Erscheint mir aber irgendwie albern.

Gruß
Peter

Re: Index im where Teil

Beitrag von kaim77 (Specialist / 172 / 0 / 0 ) » 10.09.2014 15:20
Hallo,
der Codeinspektor hat dies gemeldet, dass es im whrere-Teil erscheinen soll.
Ich weiss nicht, ob der Code dadurch optimaler wird.
Viele Grüße
Kaim

Re: Index im where Teil

Beitrag von Thanatos82 (Expert / 699 / 32 / 122 ) » 10.09.2014 16:03
Hi,

es würde wohl helfen, wenn du mal erklärst bei welchem Befehl das fehlen soll und was du mit dem Befehl eigentlich machen möchtest (Code-Schnipsel?). Und auch wenn der Code Inspector da mault, mir ist noch nie untergekommen, das die Angabe eines Index in welchem Befehl in Verbindung mit einer WHERE Klausel auch immer, eine Pflichtangabe ist.
Gruß,
der Matze

Re: Index im where Teil

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) » 10.09.2014 16:16
kaim77 hat geschrieben:Hallo,
der Codeinspektor hat dies gemeldet, dass es im whrere-Teil erscheinen soll.
Ich weiss nicht, ob der Code dadurch optimaler wird.
Viele Grüße
Kaim
Es ist wohl mehr ein Hinweis, als ein Error.

Falls man einen Index verwenden kann, wuerde dadurch die performance "meist" verbessert.
Es muss aber insgesamt auch Sinn machen.
Es gibt Personen die legen dann einfach einen neuen Index auf der DB an, damit es wieder "passt". Ist aber selten empfehlenswert!

Re: Index im where Teil

Beitrag von kaim77 (Specialist / 172 / 0 / 0 ) » 11.09.2014 10:35
Hallo,
Es stand im Codeinspektor. Es geht genau wie du sagst darum, damit es schnelle läuft. Die Indizes sind jetzt angelegt. Was muss ich jetzt meinem Select einfügen?

Muss mein Select dann ungefähr so sein ?

SELECT carrid connid cityfrom
FROM spfli INTO (xcarrid, xconnid, xcityfrom)
WHERE carrid = 'LH ' AND cityfrom = 'FRANKFURT'
%_HINTS ORACLE 'INDEX("SPFLI" "SPFLI~001")'.
WRITE: / xcarrid, xconnid, xcityfrom.
ENDSELECT.


Oder ich habe im Tricktresor folgendes entdeckt:

%_HINTS ORACLE ‘FIRST_ROWS’

Danke und viele Grüße
Kaim

Re: Index im where Teil

Beitrag von JHM (Top Expert / 1139 / 1 / 179 ) » 11.09.2014 13:39
kaim77 hat geschrieben:Die Indizes sind jetzt angelegt.


Das Anlegen der Indizies war wahrscheinlich schon sinnfrei bzw. kontraproduktiv. Kommt aber auf den Einzelfall an. Ohne genauere Angaben was du wie woher selektierst kann man das schwer einschätzen.
Aber nur weil es eine Meldung gibt, das nicht über Index zugegriffen wird, rechtfertigt noch nicht das Anlegen mehrere Indizes. Die Meldung hört sich meist schlimmer an, als die Auswirkung wirklich ist.
kaim77 hat geschrieben:Was muss ich jetzt meinem Select einfügen?

Code: Alles auswählen.

SELECT carrid connid cityfrom
 FROM spfli INTO (xcarrid, xconnid, xcityfrom)
 WHERE carrid = 'LH ' AND cityfrom = 'FRANKFURT'.
Reicht ansich. Der SAP sollte feststellen das der Index SPLFI~001 exsistiert. Demnach wäre ein Zugriff über CITYFROM auf den Index schneller als ein FullTableScan. Demnach sollte zuerst über den Index zugegriffen werden und dann mit der Teilmenge weiter gearbeitet werden.

es gibt seltene Fälle, wo der Select nicht automatisch den richtigen Index zieht. Dann kann man mit HINTS einen Schubs in die richtige Richtung geben. Davor sollte man aber mal mit der ST05 den Tabellenzugriff genauer analysieren.
Gruß Hendrik

Seite 1 von 1

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und besseren Inhalt:

Aktuelle Forenbeiträge

Smartform debuggen Main-Teil
vor einer Stunde von wreichelt 14 / 273
Summen bei Auswertung fett drucken
vor 11 Stunden von Bright4.5 5 / 134
eigene Kundenfelder innenauftrag
vor 23 Stunden von Rabea1103 1 / 52

Vergleichbare Themen

FAQ Index
von Jan » 02.08.2005 08:08
Index / Indizes
von Phame » 20.08.2015 13:05
Berechtigungen Teil II
von Nichtswisser » 26.08.2003 09:11
Datenbank-Index
von Charadin » 19.11.2007 12:23
Index in WHERE - Bedingung
von Gast » 13.10.2004 16:18