have you used performance tunig?what major steps will you
use for those
Answer / malli.gontla
These are all performance tuning steps:
Run Extended syntax checks with character literals check box
switched on & Code Inspector to rectify all relevant errors
Transaction SE30 (ABAP Runtime Analysis) must be checked to
measure/compare program performance/runtime
Use transaction ST05 (SQL Trace) to see what indices your
database accesses are using. Check these indices against
your "where" clause to assure they are significant. Check
other indices for this table and where you have to change
your "where" clause to use it. Create new indices if
necessary, but do not forget to check the impact by
consulting onsite coordinator.
Internal Table is defined with "TYPE STANDARD TABLE OF" &
Work-Areas is used instead of header lines
Global variables are minimized by declaring local variables
or by passing variables through parameters & arguments while
creating internal subroutine(s)
In SELECT statement, only the required fields are selected
in the same order as they reside on the database
For selecting single row from a database table, "SELECT UP
to 1 Rows" is used. "Select Single" is used only when full
primary key combination is known
No SELECT * is used
Use "SELECT INTO TABLE" rather than "SELECT INTO
CORRESPONDING FIELDS OF TABLE"
Always specify as many primary keys as possible in WHERE
clause to make the Select efficient
Always select into an internal table, except when the table
will be very large (i.e., when the internal table will be
greater than 500,000 records). Use "Up to N Rows" when the
number of records needed is known
Select statement within a GET event is not used
Wild cards like 'A%' is avoided as much as possible
Nested Select is not used instead "Inner Join" and/or "For
all Entries" is used. "For all Entries" is to be used over
"Loop at ITAB / Select / ENDLOOP" (FOR ALL ENTRIES retrieves
a unique result set so ensure you retrieve the full key from
When creating joins over database tables there should be an
index at least on the inner table for the fields in the join
condition else use " FOR ALL ENTRIES" select statement
Usage of JOIN is limited to a maximum of 2 i.e. not more
than 3 database tables are joined at one time
CHECK that the internal table used in FOR ALL ENTRIES is NOT
empty as this will retrieve all entries from the table
Delete adjacent duplicate entries from internal table before
selection from database table using " FOR ALL ENTRIES" statement
For copying internal tables use '=' operator instead of
Looping & Appending
SORT inside a LOOP is not used
Sort internal table by fields in the correct order, which
are used in a READ TABLE statement using BINARY SEARCH. If
the order of sorting is invalid the BINARY SEARCH will never
For large internal tables where only some rows are to be
processed, use SORT and then the READ TABLE command is used
to set index to first relevant row before looping from that
index. Use CHECK or IF…EXIT…ENDIF as appropriate to exit
from the loop
Sort fields and Sort Order on the SORT statement should be
mentioned explicitly (e.g. SORT ITAB BY FLD1 FLD2 ASCENDING)
Hashed table is used for processing large amount of data
(provided that you access single records only, and all with
a fully specified key)
DELETE or SORT is not used on a hashed table since it
increases memory consumption
Sorted table is used for range accesses involving table key
or index accesses
Fields specified in the WHERE condition with the critical
operators NOT and <> (negative SQL statements) cannot be
used for a search using database indexes. Whenever possible
formulate SQL statements positively
When coding IF or CASE, testing conditions are nested so
that the most frequently true conditions are processed
first. Also CASE is used instead of IF when testing multiple
fields "equal to" something
LOOP AT ITAB INTO WORKAREA WHERE K = 'XXX' should be used
instead of LOOP AT ITAB INTO WORKAREA / CHECK ITAB-K = 'XXX'.
Also READ TABLE INTO WORKAREA should be used instead of only
After the APPEND statement inside a loop, the work area that
has been appended is cleared
Internal tables, Work areas & Global Variables are freed
when no longer needed (e.g. using the FREE / REFRESH
command), especially when the tables are large or the
program is a batch program
Do not delete the records of internal table inside the Loop
– End loop.
Do not use: LOOP AT ITAB WHERE EQUNR = '00001011'.
Use: DELETE ITAB WHERE EQUNR = '00001011'.
Use the MODIFY ITAB ... TRANSPORTING f1 f2 ... for single
line, and MODIFY ITAB ... TRANSPORTING f1 f2 ... WHERE
condition for a set of line, to accelerate the updating of
If possible, Update/Insert statement is used instead of Modify
Is the following steps ensured during database updates?
* Lock data to be edited
* Read current data from the database
* Process data and write it to the database
* Release the locks set at the beginning
Try to avoid logical databases. If your program uses a
logical database, but does not require all fields belonging
to a certain GET event, always use the FIELDS addition to
reduce the amount of data selected by the logical database
Avoid the aggregate (Count, Max, Min) functions in the
Use Parallel Cursor methods for nested loop into the
internal tables if second internal table contains
considerable number of records
In Smartform/ Sapscript do not make redundant data retrieval
where data is available in interface
|Is This Answer Correct ?||19 Yes||0 No|
20) What is the difference bewtween client dependent tables and client independent tables?
With out any Write statement will the Top of the Page and End of Page trigger?
how do you transport FORM from one server to another server ?
What are datasets in abap?
Explain what is a foreign key relationship? Explain this with the help of an example.
Events in Interactive Report?
How is batch input process different from processing online?
A function module can be called from a transaction screen outside an abap/4 program. State true or false. : abap modularization
What happens when we initialized the internal table with OCCURS 5 ?
What is an “on request field” statement?
What are the 3 types of tables in sap? : abap data dictionary
What are the different OK Codes that can be used in batch input processing?