SAP程序性能优化解析

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

For all entries

The for all entries creates a where clause, where all the entries in the driver table are combined with OR. If the number of entries in the driver table is larger than

rsdb/max_blocking_factor, several similar SQL statements are executed to limit the length of the WHERE clause. The plus

∙Large amount of data

∙Mixing processing and reading of data

∙Fast internal reprocessing of data

∙Fast

The Minus

∙Difficult to program/understand

∙Memory could be critical (use FREE or PACKAGE size

Some steps that might make FOR ALL ENTRIES more efficient:

∙Removing duplicates from the driver table

∙Sorting the driver table

∙If possible, convert the data in the driver table to ranges so a BETWEEN statement is used instead of and OR statement:

FOR ALL ENTRIES IN i_tab

WHERE mykey >= i_tab-low and mykey <=

i_tab-high.

Nested selects

The plus:

o Small amount of data

o Mixing processing and reading of data

o Easy to code - and understand

The minus:

o Large amount of data

o when mixed processing isn’t needed

o Performance killer no. 1

Select using JOINS

The plus

o Very large amount of data

o Similar to Nested selects - when the accesses are planned by the programmer o In some cases the fastest

o Not so memory critical

The minus

o Very difficult to program/understand

o Mixing processing and reading of data not possible

Use the selection criteria

SELECT * FROM SBOOK.

CHECK: SBOOK-CARRID = 'LH' AND SBOOK-CONNID = '0400'.

ENDSELECT.

SELECT * FROM SBOOK

WHERE CARRID = 'LH' AND

CONNID = '0400'.

ENDSELECT.

Use the aggregated functions

C4A = '000'.

SELECT * FROM T100

WHERE SPRSL = 'D' AND

ARBGB = '00'.

CHECK: T100-MSGNR > C4A.

C4A = T100-MSGNR.

ENDSELECT.

SELECT MAX( MSGNR FROM T100 INTO C4A WHERE SPRSL = 'D' AND

ARBGB = '00'.

Select with view

SELECT * FROM DD01L

WHERE DOMNAME LIKE 'CHAR%'

AND AS4LOCAL = 'A'. SELECT SINGLE * FROM DD01T WHERE DOMNAME = DD01L-DOMNAME AND AS4LOCAL = 'A' AND AS4VERS = DD01L-AS4VERS AND DDLANGUAGE = SY-LANGU. ENDSELECT.

SELECT * FROM DD01V WHERE DOMNAME LIKE 'CHAR%' AND DDLANGUAGE = SY-LANGU. ENDSELECT.

Select with index support

SELECT * FROM T100

WHERE ARBGB = '00'

AND MSGNR = '999'. ENDSELECT.

SELECT * FROM T002.

SELECT * FROM T100

WHERE SPRSL = T002-SPRAS

AND ARBGB = '00'

AND MSGNR = '999'.

ENDSELECT. ENDSELECT.

Select … Into table

REFRESH X006.

相关文档
最新文档