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.