Frage zu select mit "for all entries"

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV

Frage zu select mit "for all entries"

Postby Else3434 » Tue Jan 21, 2003 11:08 am

Hallo,

ich bin etwas verunsichert.
Ich benutze in meinen Programmen oft den Befehl

select......
for all entries in itab...

nun haben mir ein paar sap experten geraten diesen befehl mit vorsicht zu genießen, weil man einiges dazu beachten müsse.

zum einen die anzahl der einträge in der besagten itab...gut, das leuchtet ein, dass die aus speichergründen oder warum auch immer nicht zu groß sein darf..

zum andern müsse man auch auf den key achten oder so ähnlihc...das sagt mir jetzt aber nichts...

was meint ihr dazu ??

gruß

kevin
Else3434
.
.
 
Posts: 9
Joined: Tue Dec 17, 2002 3:14 pm

Postby Alva1590 » Tue Jan 21, 2003 11:20 am

Hallo,

ich darf mal kurz aus der ABAP-Docu zitieren (siehe Performance-Hinweise):


Der Vorteil der Variante SELECT ... FOR ALL ENTRIES besteht darin, das er unabhängig von der Selektivität der Bedingung auf der äußeren Tabelle eine vernünftige Performance bietet, da er im Gegensatz zum geschachtelten SELECT mengenorientiert gegenüber der Datenbank arbeitet, und trotzdem nur die relevanten Datensätze liest (anders als bei der parallelen Cursorverarbeitung).
Der Zusatz FOR ALL ENTRIES sollte verwendet werden, wenn ein JOIN aus syntaktischen gründen nicht möglich ist, oder falls durch den JOIN eine zu große Redundanz durch die stets wiederholten Felder aus der linken Tabelle entstünde.


Richtig ist zwar schon, dass man darauf achten sollte, die Anzahl der Einträge in der itab klein zu halten. Wichtig ist auch, dass man alle Schüsselfelder (key-felder), die die DB-Tabelle besitzt auch in der itab gefüllt sind. Es empfiehlt sich, einen Index auf die DB-Tabelle zu erzeugen und die Felder, die im Index vorhanden sind auch in der itab für jeden Satz komplett zu füllen.

Wenn man das beachtet, gibt es gegen den Zusatz 'for all entries' eigentlich keine Einwände.
Alva1590
.....
.....
 
Posts: 4387
Joined: Mon Dec 02, 2002 3:01 pm

Postby Gerrit5078 » Tue Jan 21, 2003 1:43 pm

Unbedingt darauf achten, dass die itab nicht leer ist, da sonst alle Einträge gelesen werden und dies ist meistens nicht gewünscht!
Ausserdem sollte die Tabelle keine Duplikate enthalten und auch sortiert sein.
Gerrit5078
.
.
 
Posts: 9
Joined: Wed Jan 15, 2003 6:01 pm

Danke

Postby Else3434 » Tue Jan 21, 2003 3:26 pm

Danke...

dann bin ich ja mal fürs erste beruhigt....
ich weiß auch nicht, was sie für bedenken hatten...

gruß

kevin
Else3434
.
.
 
Posts: 9
Joined: Tue Dec 17, 2002 3:14 pm


Return to ABAP® Core

Who is online

Users browsing this forum: No registered users and 13 guests