MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   ayuda con rutina para mejorar tiempo de busquedas (foro/showthread.php?t=34866)

minerva0112 26/01/10 13:54:57

ayuda con rutina para mejorar tiempo de busquedas
 
Hola, tengo un reporte que refleja una cantidad de datos significativos, la rutina que se utiliza para realizar unas de las busquedas tarda mucho tiempo y da un error de tiempo de ejecucion.

please que podria mejorar en el siguiente codigo:


SELECT t1~belnr t1~gjahr t2~buzei t2~bschl t2~nplnr t2~projk t2~dmbtr t2~lifnr t1~budat
INTO TABLE it_bseg_reem
FROM zbkpf_73 AS t1
INNER JOIN zbseg_73 AS t2
ON t1~bukrs EQ t2~bukrs
AND t1~belnr EQ t2~belnr
AND t1~gjahr EQ t2~gjahr
FOR ALL ENTRIES IN it_aufk
WHERE t1~bukrs EQ bukrs
AND t1~blart EQ 'JE'
AND t1~stblg EQ ' '
AND t1~xstov NE 'X'
AND t1~budat LE s_budat
AND t2~nplnr EQ it_aufk-aufnr.

gracias:confused: :confused:

Neo_25 26/01/10 14:20:31

Buenas,
a ver si te puedo ayudar.

Porqué no separas la select principal del for all entries.


SELECT t1~belnr t1~gjahr t2~buzei t2~bschl t2~nplnr t2~projk t2~dmbtr t2~lifnr t1~budat
INTO TABLE it_bseg_reem
FROM zbkpf_73 AS t1
INNER JOIN zbseg_73 AS t2
ON t1~bukrs EQ t2~bukrs
AND t1~belnr EQ t2~belnr
AND t1~gjahr EQ t2~gjahr
WHERE t1~bukrs EQ bukrs
AND t1~blart EQ 'JE'
AND t1~stblg EQ ' '
AND t1~xstov NE 'X'
AND t1~budat LE s_budat.

FIELD-SYMBOLS: <fs_bseg_reem> TYPE xxxx.
DATA: lw_aufk TYPE yyyy. "estructura

LOOP AT it_bseg_reem ASSIGNING <fs_bseg_reem>.
READ TABLE it_aufk INTO lw_aufk
WITH KEY aufnr = <fs_bseg_reem>-nplnr.
IF sy-subrc = 0.
APPEND lw_aufk TO it_bseg_reem_2.
ENDIF.
ENDLOOP.

VLozano 27/01/10 06:04:03

Cito el mensaje original para que no se pierda...
Dos cosillas (o tres, nunca sé cuántas acabo poniendo):
- ¿cuántos registros tienen esas Z?
- ¿los campos que utilizas en el join son clave?
- "EQ" mola mucho, pero es menos eficiente que "="... en serio, lo leí en alguna parte
- asegúrate ANTES de lanzar la SQL que la tabla it_aufk tiene registros, o el sistema te leerá TODO el contenido de ambas tablas de la JOIN, independientemente de lo que tenga el WHERE...
- ¿los campos del where están indexados?

Si se me ocurre algo más, ya me pasaré por aquí :)

(braschilester, creo que te has equivocado de hilo)

minerva0112 27/01/10 11:13:20

gracias por su ayuda, pero surgio la idea de crear una vista con estas dos tablas y los tiempos mejoraron muchisimo ;)


Husos Horarios son GMT. La hora en este momento es 17:34:09.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web