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

Write an abap program for creation of customer enquiry using BAPI 'BAPI_INQUIRY_CREATEFROMDATA'.

1770


What are different data types in abap/4?

554


What does the extract statement do in extract datasets? : abap modularization

560


What is an abap?

550


Define structure in abap data dictionary?

611






1.why dont use top of page. wat is the use? 2. wat is sub screen? 3. why u select the session method in bdc ? how many records wil be updated on that time? 4.why dont use start form in script? 5.wat is difference b/w dilldown and interactive report? 6. wat is pf status interactine report?

2352


What is modularization and its benefits?

595


How can we send data to external programs?

615


How do you work with semi colon se[arated files in BDC ?

1448


What is the syntex used to call a screen as dialog box (pop up)?

723


How many types of data classes are there in sap abap? : abap data dictionary

554


How do you take care of performance issues in your ABAP programs?

663


What is the structure of the bdc table? : abap bdc

726


java script for push button in adobe forms.

1886


How we can give authorization on the fields of table control in a dialog-programming?

1843