
Inline adoc files when they are included exactly once. Also fix language tags because this inlining gives us better information on what language the code is written in.
46 lines
1.2 KiB
Plaintext
46 lines
1.2 KiB
Plaintext
== Why is this an issue?
|
|
|
|
In ``++SELECT ... FOR ALL ENTRIES++`` queries there are two internal tables: the driver internal table, and the target internal table. For each entry in the driver table some data from a database table is stored in the target internal table.
|
|
|
|
|
|
Most of the time, starting by sorting the content of the driver internal table offers improved performance. Indeed in such cases, from one request to another, the data read from the database tends to be much the same, and so for instance the use of database caching is maximised.
|
|
|
|
|
|
=== Noncompliant code example
|
|
|
|
[source,abap]
|
|
----
|
|
SELECT carrid , connid , seatsocc FROM flights
|
|
INTO TABLE seatsocc_tab
|
|
FOR ALL ENTRIES IN conn_tab
|
|
WHERE carrid = conn_tab-carrid
|
|
AND connid = conn_tab-connid
|
|
----
|
|
|
|
|
|
=== Compliant solution
|
|
|
|
[source,abap]
|
|
----
|
|
SORT conn_tab BY carrid
|
|
...
|
|
SELECT carrid , connid , seatsocc FROM flights
|
|
INTO TABLE seatsocc_tab
|
|
FOR ALL ENTRIES IN conn_tab
|
|
WHERE carrid = conn_tab-carrid
|
|
AND connid = conn_tab-connid
|
|
----
|
|
|
|
ifdef::env-github,rspecator-view[]
|
|
|
|
'''
|
|
== Implementation Specification
|
|
(visible only on this page)
|
|
|
|
=== Message
|
|
|
|
Sort driver table 'xxxx' before using it
|
|
|
|
|
|
endif::env-github,rspecator-view[]
|