You are on page 1of 14

7

ABAP/4
7
7 ABAP/4
ABAP/4
Performance Tuning

Performance Tuning


10 (
Hang )

Performance

Syntax
Performance
Performance
ABAP/4

ABAP/4

Primary Key

Primary

Key

Where Clause SELECT Primary Key Index


Index

Primary Key

Sequential Read Full Table Scan


Cluster Table Primary key


Primary Key

Index

SELECT * FROM sflight WHERE carrid = LH AND


connid = 0400 AND
fldate = 19950228.
CHECK

Where Clause SELECT CHECK

141

ABAP/4
Where

Clause

Database Server

SELECT * FROM sflight WHERE carrid = LH.

ENDSELECT.
CHECK

SELECT * FROM sflight.


CHECK carrid = LH.

ENDSELECT.

BSEG MSEG

BSEG
BSIS

MSEG

MARC MARD

Information System
Data Dictionary Transaction DI03
ZNOUR

ZNOUR

Transaction DI03 Transaction (


) Specification Structure (Structure
)

Transaction


SELECT INTO TABLE

SELECT ENDSELECT
Copy
Internal Table Internal Table

TABLES customers.
DATA customer LIKE customers OCCURS 0 WITH HEADER LINE.
SELECT * FROM customers INTO TABLE customer.
LOOP AT customer.
WRITE: / customer-id, customer-name.
ENDLOOP.
MOVE MOVE-CORRESPONDING
MOVE MOVE-CORRESPONDING
Structure

MOVE

MOVE-

142

ABAP/4
CORRESPONDING MOVE-CORRESPONDING

MOVE-

CORRESPONDING CPU

Structure
MOVE
MOVE-CORRESPONDING

DATA: BEGIN OF rec1,


tmp1(5) VALUE test1,
tmp2(5) VALUE test2,
tmp3(5) VALUE test3,
tmp4(5) VALUE test4,
tmp5(5) VALUE test5,
END OF rec1.
DATA: BEGIN OF rec2,
tmp1(5) ,
tmp2(5) ,
tmp3(5) ,
tmp4(5) ,
tmp5(5) ,
END OF rec2.
MOVE-CORRESPONDING rec1 TO rec2.
MOVE: rec1-tmp1 TO rec2-tmp1,
rec1-tmp2 TO rec2-tmp2,
rec1-tmp3 TO rec2-tmp3,
rec1-tmp4 TO rec2-tmp4,
rec1-tmp5 TO rec2-tmp5.

2
SELECT SELECT 3
SELECT SELECT Internal Table

LOOP AT

SELECT SELECT
Internal Table Field Group
Internal Table Internal Table

OCCURS Internal Table


Internal Table 1,000
OCCURS 1000
0
Internal Table Paging Area OCCURS

OCCURS

Performance Internal Table Paging Area


Memory Space OCCURS
Internal Table

143

ABAP/4
Internal Table 100,000
Internal Table Internal Table Field Group
Field Group Internal Table
Paging Area Field Group Internal Table
Field Group Compressed Data
Internal Table Field Group

TABLES customers.
DATA customer LIKE customers OCCURS 0 WITH HEAER LINE.
SELECT * FROM customers INTO TABLE customer.
LOOP AT customer.
WRITE: / customer-id, customer-name,customer-telephone.
ENDLOOP.
Field Group

TABLES customers.
DATA customer LIKE customers.
FIELD-GROUP: header.
INSERT customer-id customer-name customer-telephone INTO header.
SELECT * FROM customers.
MOVE: customers-id TO customer-id,
customers-name TO customer-name,
customers-telephone TO customer-telephone.
EXTRACT header.
ENDSELECT.
LOOP.
WRITE: / customer-id, customer-name, customer-telephone.
ENDLOOP.
Internal Table Field Group
Field Group FIELD-GROUP
1
header )

Field Group (
INSERT INTO

header

Field Group
header Runtime
EXTRACT Memory Space

Paging Area Field Group LOOP
Paging Area Field Group Structure INSERT INTO header Memory
Space WRITE SORT
SORT Field Group header

LOOP SORT
Internal Table LOOP SORT

Field Group

ABAP/4

144

ABAP/4
SAP

Transaction

SE30 ABAP/4

Runtime Analysis Tips & Tricks

run
Micro Second

145

ABAP/4

Long Text Programming


Long Text SAP Script Text


Master Data R/3

Long Text
Long Text 20061 Company Code 0001
Transaction

FD02 General Data Address Change Customer:

address Extras-> Texts Long Text


Accounting note
Accounting note Long Text

Long Text
Long Text

Long Text
Long Text


KNA1 Master Data

146

ABAP/4
Long text


KNA1

Array Long Text


Long Text

Long Text


READ_TEXT
3 Text ID
Text Object Text Name Long Text

READ_TEXT 3

(
)
Long Text Goto-> Header Text ID Text Object
Text Name

Text ID

0002

Text Object

KNA1 Text Name

0000020061 Text Name 0000020061



READ_TEXT

Text Name

KUNNR


READ_TEXT Long Text

CALL FUNCTION READ_TEXT


EXPORTING
id
=
0002
name =
0000020061
object =
KNA1
IMPORTING
header =
1header
TABLES
lines
=
1lines.
Long Text Long Text

TABLES: tline, thead.


DATA BEGIN OF 1header OCCURS 0.
INCLUDE STRUCTURE thead.
DATA END OF 1header.
DATA BEGIN OF 1lines OCCURS 0.
INCLUDE STRUCTURE tline.
DATA END OF 1lines.

147

ABAP/4

DATA temp LIKE thead-tdname.


Long Text

TABLES: tline, thead, kna1.


DATA BEGIN OF 1header OCCURS 0.
INCLUDE STRUCTURE thead.
DATA END OF 1header.
DATA BEGIN OF 1lines OCCURS 0.
INCLUDE STRUCTURE tline.
DATA END OF 1lines.
DATA temp LIKE thead-tdname.
SELECT-OPTIONS custno FOR kna1-kunnr.
START-OF-SELECTION.
SELECT * FROM kna1 WHERE kunnr IN custno.
temp = kna1-kunnr.
CALL FUNCTION READ_TEXT
EXPORTING
id
=
0002
name =
temp
object =
KNA1
client
= sy-mandt
language = sy-langu
IMPORTING
header =
1header
TABLES
lines
=
1lines
EXCEPTIONS
id
=
1
language
=
2
name
=
3
not_found
=
4
object
=
5
reference_check = 6
wrong_access_to_archive = 7
others
=
8.
IF sy-subrc = 0.
WRITE: / kna1-kunnr, kna1-name1.
LOOP AT 1lines.
IF sy-tabix = 1.
WRITE: 30(50) 1lines-tdline.
ELSE.
WRITE: /30(50) 1lines-tdline.
ENDIF.
ENDLOOP.
ENDIF.
ENDSELECT.
( 20061)

0000020061 Sample Company

This is test customer


for long text data

148

ABAP/4

contact no 00011/21

READ_TEXT Long Text Internal Table

1lines LOOP AT Long Text Internal Table


1lines
Long Text

READ_TEXT Text ID Text Object

Text Name
sy-subrc 0 Long
Text
READ_TEXT sy-subrc 0
sy-subrc Exception Raise
READ_TEXT

Lomg Text Master Data Text Name
Long Text
Text Name 3 BUKRS
ANLN1 ANLN2 Text Name
READ_TEXT
Text Name CONCATENATE

SELECT * FROM anla.


CONCATENATE anla-bukrs anla-anln1 anla-anln2 INTO temp.
CALL FUNCTION READ_TEXT
EXPORTING
id
=
XLTX
name =
temp
object =
ANLA
client
= sy-mandt
language = sy-langu
IMPORTING
header =
1header
TABLES
lines
=
1lines.
Text ID Text Object Long Text

XLTX

ANLA Master Data


ANLA

Long Text

Text ID Text Object Text Name


READ_TEXT

ABAP/4
ABAP/4
ABAP/4
ON CHANGE OF <f>
ON CHANGE OF
SELECT ENDSELECT Event GET
ON CHANGE OF

149

ABAP/4

TABLES sflight.
SELECT * FROM sflight ORDER BY carrid connid.
ON CHANGE OF sflight-carrid.
ULINE.
WRITE: / ***, sflight-carrid, ***.
ENDON.
WRITE: / sflight-connid, sflight-fldate.
ENDSELECT.
String

STRLEN

String

Character
len 2

DATA: len TYPE I,


str(10) VALUE ab.
len = STRLEN( str ).
WRITE: / len.
PRINT-CONTROL

Print Control


PRINT-CONTROL

FUNCTION

Print Control
Output Device Print Control Control Character
Sequence

NEW-PAGE PRINT ON
NO DIALOG
DESTINATION SAK2
IMMEDIATELY X.
PRINT-CONTROL FUNCTION SF015.
WRITE: / Hello World.
PRINT-CONTROL FUNCTION SF016.
WRITE: / Hello World.
PRINT-CONTROL FUNCTION SPAGE.
0
0 Runtime
Error Shortdump 9 / 0
0 0 Initial Value
( 0 / 0
0 )
Arithmetic Expressions Mathematical Function
ABAP/4 Arithmetic Expressions
**

2 ** 4 = 16

2 * 2 = 4

150

ABAP/4
/

9 / 2 = 4.5

2 + 2 = 4

DIV

9 DIV 2 = 4

MOD

9 MOD 2 = 1

4 - 2 = 2

Mathematical Function COS SIN TAN ACOS ASIN


ATAN EXP LOG ABS SIGN SQRT

value = SQRT( 2 ). value 1.414


Arithmetic Expressions Mathematical Functions

1.

Mathematical Functions SIN SQRT

2.

**

3.

4.

DIV MOD
-

SHIFT ()
SHIFT

DATA tmp(30).
tmp = This is TEST program.
SHIFT tmp UP TO TEST.
SHIFT tmp TEST program

SHIFT

This is

SEARCH ()
SEARCH Internal Table

DATA: BEGIN OF tab,


tmp(40),
END OF tab.
tab-tmp = This is the Internal Table.
APPEND tab.
tab-tmp = for test in search command.
APPEND tab.

151

ABAP/4

tab-tmp = Thank you very much.


APPEND tab.
SEARCH tab FOR search.
SEARCH tab FOR you STARTING AT 2.
SEARCH sy-subrc 0

sy-tabix 2 2 Internal Table SEARCH


sy-fdpos 12 Offset
2 Internal Table

SEARCH

STARTING AT Internal
Table

Internal

Table

SEARCH
ENDING AT

SEARCH tab FOR search STARTING AT 1 ENDING AT 2.

Text Symbol
Text Symbol 000 999
Text Symbol

WRITE: / TEXT-num, TEXT-001, TEXT-del.


FORMAT HOTSPOT ON
FORMAT
WRITE

FORMAT
HOTSPOT ON

WRITE FORMAT

HOTSPOT ON


HOTSPOT ON
Drill-down

Program

Secondary List
Secondary List
HOTSPOT ON

FORMAT HOTSPOT ON.


SELECT * FROM sflight.
WRITE: / sflight-carrid, sflight-connid.
HIDE: sflight-carrid, sflight-connid.
ENDSELECT.
FORMAT HOTSPOT OFF.

152

ABAP/4

HOTSPOT ON
Hotspot carrid

WRITE: / sflight-carrid HOTSPOT ON, sflight-connid.


Escape Character SELECT
Wildcard Where Clause SELECT
2

Where Clause

ESCAPE Wildcard SELECT



TEST_

SELECT * FROM customers WHERE name LIKE TEST#_% ESCAPE #.


# Escape Character
Wildcard Where Clause SELECT ( _ TEST#_%)
% Wildcard Escape Character

Escape Character
Wildcard

OPTION SELECT-OPTIONS
Selection Screen Event

INITIALIZATION Internal Table SELECT-OPTIONS

SELECT-

OPTIONS
OPTION Selection Screen SELECTOPTIONS 1

SELECT-OPTIONS custno FOR customers-id DEFAULT 1 OPTION GE.


GE Grater Than

7
ABA/4

ABAP/4

ABAP/4 ABAP/4
ABAP/4
ABAP/4

153

ABAP/4
Text Book

Technical

Syntax ABAP/4

ABAP/4

Syntax
Help

ABAP/4 ABAP/4

ABAP/4 Specification

)
Specification
ABAP/4
Specification



Memory Space

Read/Write Value Assignment



Memory Space

run


ABAP/4 Memory Space

ABAP/4 ABAP/4

Help

ABAP/4 ABAP/4

Syntax

ABAP/4

ABAP/4

154

You might also like