PDA

Ver la Versión Completa : Optimizacion de Codigo ABAP


CRISTINO.GARCIA
25/10/12, 20:02:24
Hola a Todos

Estoy necesitando inforamcion sobre como Optimizar los codigos ABAP de los programas ya existentes los cuales estan dando problema de altos tiempos de lectura en la base de datos.

Muchas Gracias de Antemano.


Saludos


Cristino

K-MUS
25/10/12, 20:18:32
Es muy extenso el tema pero bueno, te paso una lista de cosas a chequear.

- Eliminar y reemplazar cualquier SELECT - ENDSELECT que haya.

- Quitar Select dentro de LOOPS. Si tenes Selects dentro de loops, ponelos afuera y dentro del loop accede con READ TABLE o LOOP a la tabla interna.

- Evitar Select que tengan muchos INNER JOIN. Usar varios selects separados con FOR ALL ENTRIES.

- Tratar de ingresar por campos claves y/o índices disponibles.

- Evitar el SELECT *

- Si utilizas la BSEG, la misma es una tabla CLUSTER reemplaza la búsqueda con las tablas BSID, BSIK, BSIS, BSAS, BSAD y BSAK.

- Evitar Select a tablas que tardan mucho, tratando de encontrar otras lógicas de búsqueda.

- En el caso que tengas LOOP Anidados con muchos registros, como por ejemplo:

LOOP AT t_BKPF.
LOOP AT t_BSEG WHERE BUKRS = t_BKPF-BUKRS AND
BELNR = t_BKPF-BELNR AND
GJAHR = t_BKPF-GJAHR AND.
ENDLOOP.
ENDLOOP.

Es mucho más performante utilizar la técnica de "Cursor Paralelo". Donde primero averiguas cual es el índice y accedes por índice.

Más info:
http://www.saptechnical.com/Tutorials/ABAP/ParallelCursor.htm

Saludos

CRISTINO.GARCIA
26/10/12, 16:31:18
Muchas Gracias !!! Estare pendiente. Saludos.

Cristino