Oracle - Velocidad diferente de select en sql y pl/sql

 
Vista:

Velocidad diferente de select en sql y pl/sql

Publicado por Jose (8 intervenciones) el 01/07/2004 10:44:22
Tengo la siguiente select que si la lanzo directamente desde sql es rápida:
SELECT /*+ORDERED*/SUM(B.IMPORTE) IMPORTE,
SUM(B.CANTIDAD * DECODE(A.DIVISIBLE,'N',1,NVL(A.UNIDADU,1)) ) CANTIDAD
FROM CTARTI01 A, GTELEINV01 B, GTPROINV01 P, GTUBICAC01 U
WHERE B.CDEMPRES = U.CDEMPRES AND
B.CODUBIC = U.CODUBIC AND
B.FECHA BETWEEN U.FEEXIINI AND SYSDATE AND
NVL(B.CODPROC,B.CODPROC) = P.CODPROC AND
P.CALCPREC = 1 AND
A.CDEMPRES = B.CDEMPRES AND
A.CODART = B.CODART AND
A.CDEMPRES = 'Z' AND
A.CODART >= 0 AND
DECODE(A.DIVISIBLE,'N',A.CODART,A.CODARTU) = 8003261

pero si la lanzo en un bloque pl/sql o creo una función/procedimiento de base de datos se vuelve lenta (unas 8 veces mas lenta)

¿Existe alguna causa para ello? Yo suponía que trasladar a la base de datos suponía agilizar y no empeorar la respuesta.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Velocidad diferente de select en sql y pl/sql

Publicado por sys (23 intervenciones) el 07/07/2004 19:08:20
y si la lanzas con sql dinámico??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar