have you used performance tunig?what major steps will you
use for those

Answer Posted / malli.gontla

These are all performance tuning steps:

performance techniques

Ans:
Run Extended syntax checks with character literals check box
switched on & Code Inspector to rectify all relevant errors
and warning

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
table/structure/view


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
the database)


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
work


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
READ TABLE.


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'.

DELETE ITAB.

ENDLOOP.

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
internal table


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
database selection


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 ?    22 Yes 0 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

can any one answer these questions 1)How do you convert non-character field to character field? 2)How do you work with semi colon separated files? 3)why cant we use normal function module for data transfer? 4)what is the structure of CTU-PARAMS? 5)can we use transfer dataset to transfer data in internal table?

1533


What is bdc programming? : abap bdc

565


Differentiate between transparent tables, cluster tables and pooled tables

557


What are the relational operations that can be performed on view in sap? : abap data dictionary

499


Suppose there is check box along with the rows. The requirement is, select the require check boxes and press a used defined button to save all these checked row data to another table. How can you do it?

1609






What are the 2 other types of views, which are not allowed in release 3.0?

615


Explain enhancements

866


please any one can tell me How to validate the data in Table maintinance generator?how can u validate the table field values if u r entering the data into fields .it shows record is wrong?wher we can done validation in table maitenance generator before getting the data as out ?

1569


In the MM module for finding out the standard cost what is the view one has to look at?

604


Hat are the different types of mode (run code) in call transaction method?

562


What are the types of records that are transferred to sap r/3 and used by interfaces? : abap bdc

532


Is sap xi intended to replace ale?

568


A field containing currency amounts (data type curr) must be assigned to a reference table and a reference field. Explain.? : abap data dictionary

731


In BDC, data transfer is done success in foreground mode but if we done the same in background mode it shows errors. What is the reason?

972


How to split one Invoice into Multiple ( Step by Step)?

1692