have you used performance tunig?what major steps will you
use for those
Answer / 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 ? | 23 Yes | 0 No |
what is the difference between user-exit & customer-exit?
4 Answers Cap Gemini, IBM, ITC Infotech, LGB, NTT Data, Sony, TCS, Tech Mahindra,
How do you get help in ABAP?
if bdc session method is to be executed at some particular time without using sessions? how?
what is the difference between [select single xxx from ...] and [select * from ... up to one row]?
what is Bapi?what is the functionality of Bapi?why we go for Bapi?
What are spa/gpa parameters (sap memory)?
if i want to insert 10 laks MM records and for inserting one record it takes 1 min by using call transaction or session method . so here is there any alternative
what is Deep Structure?
5 Answers Cap Gemini, TATA, TCS,
Hi every one ! You people are doing a great job here , Im going to attend Tata Technologies interivew on this sunday,Can anyone who has already attended this company interivew or other companies interivews in abap pls share ur experience with me and help me to get into job my id ushareddyabap@gmail.com. Thankyou verymcuh
I have one BADI Definition , which i have use it in multiple Implementation .Now i am calling the BADI , In which Sequence the BADI will be called ? Can i control the sequence of calling ?
2 Answers Nissan, Renault Nissan,
Name the transaction code can I used to analyze the performance of abap program?
how to stretch the report size in standard tool bar.