Oracle - ¿Por qué tarda tanto mi consulta?

 
Vista:

¿Por qué tarda tanto mi consulta?

Publicado por Pepe (1 intervención) el 28/04/2017 02:57:30
Buenas tardes

Agradecería me ayudaran con el siguiente problema:

Hago la siguiente consulta y el manejador se tarda más o menos 15 segundos en arrojarme el resultado que son aproximadamente 250 mil registros:

1
2
3
4
5
6
7
8
9
10
SELECT ORIGEN_KEY,(SELECT DELE
                   FROM DISCO.ARMCOL
                   WHERE ROWNUM = 1
                   AND ORIGEN_KEY = CVE_LIQ
                  ) DELE, SUM(RECA) RECA
FROM DISCO.TROL_PP
WHERE (FECHA BETWEEN TO_DATE(&fecha_inicio,'YYYYMMDDHH24MISS') AND TO_DATE(&fecha_final,'YYYYMMDDHH24MISS') )
AND SUBSTR(CAD_SEG,1,4)='1201'
AND RECA <> 0
GROUP BY ORIGEN_KEY

Pero esta consulta la quiero agrupar por DELE entonces modifico el query quedando asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT DELE, SUM(RECA) RECA
FROM(
	SELECT ORIGEN_KEY, (SELECT DELE
                    FROM DISCO.ARMCOL
                    WHERE ROWNUM = 1
                    AND ORIGEN_KEY = CVE_LIQ
                    ) DELE, SUM(RECA) RECA
	FROM DISCO.TROL_PP
	WHERE (FECHA BETWEEN TO_DATE(&fecha_inicio,'YYYYMMDDHH24MISS') AND TO_DATE(&fecha_final,'YYYYMMDDHH24MISS') )
	AND SUBSTR(CAD_SEG,1,4)='1201'
	AND RECA <> 0
	GROUP BY ORIGEN_KEY
	)
GROUP BY DELE

Pero lo ejecuto y estuvo como una hora hasta que se detuvo y me marco que había excedió el tiempo, entonces quisiera que me ayudaran a saber que estoy haciendo mal o si hay alguna forma mejor de hacer la consulta?

Nota: Ocupo TOAD para hacer las consultas y también si quiero exportar a CSV el resultado del primer query tarda mucho mas de lo normal

De antemano agradezco su ayuda y espero me haya explicado bien

Saludos
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
Imágen de perfil de Elvis
Val: 209
Plata
Ha mantenido su posición en Oracle (en relación al último mes)
Gráfica de Oracle

¿Por qué tarda tanto mi consulta?

Publicado por Elvis (102 intervenciones) el 28/04/2017 18:59:06
Estimado, por lo general utilizo el plsqldeveloper y selecciono toda la consulta y presiono la tecla F5 y se levanta el plan de ejecucion de la sentencia, es algo similar a la imagen que adjunto. Alli se puede observar a detalle los indices que usas en tu consulta y que afinamiento se puede hacer, pero para eso tienes que ver como estra estructurada tu tabla, hablo netamente en oracle.

Alguna duda favor indicarla.
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