PDA

Ver la Versión Completa : Optimizacion de Consulta.


funkeeiads
15/12/15, 19:31:23
Hola abapers.
Tengo un problema de rendimiento.
No se como optimizar mas mi consulta.. Se demora demasiado.

SELECT fal~einri fal~falnr fal~falar fal~patnr fal~abrkz fal~erdat fal~erusr fal~updat fal~upusr fal~storn fal~stdat fal~fatyp
bew~bewty bew~bwart bew~bwidt bew~orgfa bew~orgpf bew~bwgr1 bew~bwgr2
cir~lfdnr cir~kostr cir~patkz cir~rangf
INTO CORRESPONDING FIELDS OF TABLE ti_nfall
FROM nfal AS fal
INNER JOIN nbew AS bew
ON fal~falnr = bew~falnr
INNER JOIN ncir AS cir
ON bew~falnr = cir~falnr
WHERE fal~einri IN p_einri AND
fal~falnr IN p_falnr AND
fal~erdat IN p_erdat AND
fal~storn IN p_storn
%_HINTS ORACLE 'INDEX("NFAL" "NFAL~Z2")'.
IF sy-subrc <> 0.
MESSAGE 'No se han encontrado datos en la consulta' TYPE 'E'.
ELSE.
SELECT falnr orgid leist anfoe erboe preis abrkz stals imeng taras anpoe
INTO CORRESPONDING FIELDS OF TABLE ti_nlei
FROM nlei
FOR ALL ENTRIES IN ti_nfall
WHERE falnr = ti_nfall-falnr
%_HINTS ORACLE 'INDEX("NLEI" "NLEI~Z2")'.
ENDIF.

Las consultas a las tablas son:
nfal tiene 1 registro
nbew tiene 1 registro
ncir y nlea pueden tener mas de 1.

Hice hasta indices y campos obligatorios para acotar mas la consulta.
Saludos

'or'1'='1
17/12/15, 09:58:56
si necesitas un solo campo de esa consulta puedes utilizar un select single.