Professional Documents
Culture Documents
Programao em ABAP/4
Programao em
Performance &
Assuntos abordados
Performance e Tunning
Acesso a Banco de Dados
Manipulao de Strings
Manipulao de Tabelas Internas
Tipos de Campos
Outros
Programao em
Performance &
79.508 s
Programao em
Performance &
54.395 s
46.565.368 s
Programao em
Performance &
987.930 s
29.477 s
Programao em
Performance &
28.409 s
58.864 s
Programao em
Performance &
17.962 s
Select...Endselect X Loop
select * from t006.
endselect.
42.985 s
Programao em
Performance &
23.385 s
2.187.488 s
Programao em
Performance &
167.781 s
12.372.996 s
3.890.100 s
Programao em
Performance &
Programao em
Performance &
name1
table t_lfa1
lfa1
all entries in t_mara
lifnr = t_mara-mrfnr.
clear
t_result.
refresh t_result.
loop at t_mara.
read table t_lfa1
with key lifnr = t_mara-mrfnr
binary search.
check sy-subrc is initial.
move: t_mara-matnr to t_result-matnr,
t_mara-mrfnr to t_result-mrfnr,
t_lfa1-name1 to t_result-name1.
append t_result.
endloop.
140.000 s
Programao em
Performance &
114.000 s
143.000 s
Programao em
Performance &
125.000 s
1.645.070 s
Programao em
Performance &
266.631 s
select single
where
and
and
32.273 s
Programao em
Performance &
* from t100
sprsl = D
arbgb = 00
msgnr = 999.
2.037 s
Resumo de Acesso a BD
Sempre que utilizar o comando SELECT
procure:
No utilizar o comando GET
Evitar o operador LIKE
Acessar a tabela por ndice
Carregar a tabela numa tabela interna
Utilizar Views
Especificar as colunas
Utilizar bufferizao
Utilizar o automatismo do SGBD
Programao em
Performance &
Programao em
Performance &
update sflight
set seatsocc = seatsocc - 1.
260.952 s
Programao em
Performance &
56.595 s
Resumo de Atualizao
Sempre que utilizar comandos de
atualizao de BD procure:
Executar os comandos para blocos de
linhas
Executar os comandos para o menor
nmero de colunas possvel
Programao em
Performance &
if cha(200) ca ().
...
endif.
do 200 times.
if <c> = ( or <c> = ).
...
exit.
endif.
assign <c>+1 to <c>.
enddo.
8.413 s
Programao em
Performance &
607 s
concatenate t100-arbgb
t100-msgnr
t100-text
into cla.
1.468 s
Programao em
Performance &
117 s
move Jos
to cma.
move Silva
to cmb.
move So Paulo to cmc.
i1 = strlen(cma).
i2 = strlen(cmb).
i3 = strlen(cmc).
concatenate Sr.
cma
cmb
de
cmc
into cha
separated by spaces.
move
move
i1 =
move
i1 =
move
i1 =
move
Sr. to
cma
to
i1 + 5.
cmb
to
i1 + i2 +
de to
i1 + 3.
cmc
to
cha.
cha+4.
cha+i1.
1.
cha+i1.
cha+i1.
638 s
Programao em
Performance &
195s
Programao em
Performance &
loop at tab_src.
collect tab_src into tab_dest.
endloop.
sort tab_dest by k.
9.324.565 s
Programao em
Performance &
270.060 s
loop at tab_src.
Append tab_src to tab_dest.
endloop.
sort tab_dest by k.
delete adjacent duplicates
from tab_dest
comparing k.
335.602 s
Programao em
Performance &
257.364 s
10.604 s
Programao em
Performance &
206 s
331 s
Programao em
Performance &
148 s
5.576 s
Programao em
Performance &
281 s
9.091 s
Programao em
Performance &
3.284 s
134 s
Programao em
Performance &
95 s
tab_dest[] = tab_src[].
8.554 s
Programao em
Performance &
2.446 s
14.292 s
Programao em
Performance &
5.506 s
loop at tab1.
read table tab2
with key k = tab1-k
binary search.
if sy-subrc is initial.
...
endif.
endloop.
234.312 s
Programao em
Performance &
83.260 s
i2 = 1.
loop at tab1.
loop at tab2 from i2.
if tab2-k <> tab1-k.
I2 = sy-tabix.
exit.
endif.
...
endloop.
endloop.
3.026.439 s
Programao em
Performance &
76.059 s
tab-date = sy-datum.
do 500 times.
modify tab index sy-index
transporting date.
enddo.
50.234 s
Programao em
Performance &
27.735 s
49.025 s
Programao em
Performance &
16.397 s
idx = 250.
insert lines of tab_src
into tab_dest
index idx.
179.852 s
Programao em
Performance &
18.204 s
239.180 s
Programao em
Performance &
37.750 s
do 101 times.
delete tab_dest index 450.
enddo.
23.068 s
Programao em
Performance &
906 s
Performance &
Tipos de Campos
Para melhorar a performance:
Especifique os tipos de qualquer campo;
Utiliza campos tipo I como ndices de
tabelas internas;
Faa movimentao entre campos de tipos
diferentes s se no existir alternativa;
No utilize tipos N para realizar clculos;
Faa clculos entre campos de tipos
diferentes s se no existir alternativa.
Programao em
Performance &
Outras Observaes
Para melhorar a performance:
O comando CASE melhor que o IF;
O comando WHILE melhor que o DO,
quando se aplicar;
O MOVE e a atribuio direta so
equivalentes;
O ADD/SUBTRACT/COMPUTE e a
atribuio direta com clculo so
equivalentes;
O IF e o CHECK so equivalentes.
Programao em
Performance &