Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Tiempo de respuesta excesivo en resultado de query con subselect

Estas en el tema de Tiempo de respuesta excesivo en resultado de query con subselect en el foro de Oracle en Foros del Web. Gente del foro, les consulto sobre esta query si hay alguna forma de optimizar para que arroje algun resultado de forma rapida. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código ...
  #1 (permalink)  
Antiguo 20/12/2012, 09:55
 
Fecha de Ingreso: abril-2012
Ubicación: Capital Federal
Mensajes: 283
Antigüedad: 12 años, 8 meses
Puntos: 15
Tiempo de respuesta excesivo en resultado de query con subselect

Gente del foro, les consulto sobre esta query si hay alguna forma de optimizar para que arroje algun resultado de forma rapida.

Código SQL:
Ver original
  1. SELECT COUNT(C.contrato_rk)
  2.     FROM  ci_contact_history_cont_ext C
  3.     WHERE  EXISTS
  4.         (
  5.         SELECT P.cell_package_sk,P.contrato_rk,P.CONTACT_DTTM
  6.         FROM ci_contact_history_cont P
  7.         WHERE ( P.cell_package_sk = C.cell_package_sk AND
  8.                     P.contrato_rk=C.contrato_rk AND
  9.                     P.CONTACT_DTTM=c.CONTACT_DTTM
  10.        )
  11.         )
  12. AND C.CONTACT_DTTM >= to_date( '19/12/2008 12:11:33','dd/mm/yyyy HH24:MI:SS')


Nota: La tabla CI_CONTACT_HISTORY_CONT_EXT tiene 32736252 de registros

Gracias, saludos
  #2 (permalink)  
Antiguo 20/12/2012, 10:05
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 10 meses
Puntos: 360
Respuesta: Tiempo de respuesta excesivo en resultado de query con subselect

Y cual es el tiempo de respuesta?
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 20/12/2012, 11:39
 
Fecha de Ingreso: abril-2012
Ubicación: Capital Federal
Mensajes: 283
Antigüedad: 12 años, 8 meses
Puntos: 15
Respuesta: Tiempo de respuesta excesivo en resultado de query con subselect

huesos52 no termina de arrojar resultados, estoy ejecutando la consulta en Oracle SQL Developer
  #4 (permalink)  
Antiguo 20/12/2012, 12:26
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Tiempo de respuesta excesivo en resultado de query con subselect

Yo probaría así:
Código SQL:
Ver original
  1. SELECT COUNT(C.contrato_rk) contratos
  2.     FROM  ci_contact_history_cont_ext C
  3.     WHERE  EXISTS
  4.         (
  5.         SELECT COUNT(1)
  6.         FROM ci_contact_history_cont P
  7.         WHERE P.cell_package_sk = C.cell_package_sk AND
  8.               P.contrato_rk=C.contrato_rk AND
  9.               P.CONTACT_DTTM=c.CONTACT_DTTM
  10.         )
  11. AND C.CONTACT_DTTM >= to_date( '19/12/2008 12:11:33','dd/mm/yyyy HH24:MI:SS');

o bien así:
Código SQL:
Ver original
  1. SELECT COUNT(C.contrato_rk) contratos
  2.   FROM  ci_contact_history_cont_ext C, ci_contact_history_cont P
  3.   WHERE P.cell_package_sk = C.cell_package_sk
  4.         AND P.contrato_rk=C.contrato_rk
  5.         AND P.CONTACT_DTTM=c.CONTACT_DTTM
  6.         AND C.CONTACT_DTTM >= to_date( '19/12/2008 12:11:33','dd/mm/yyyy HH24:MI:SS');
También me plantearía crear un indice en ci_contact_history_cont_ext sobre el campo CONTACT_DTTM
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 27/12/2012, 08:10
 
Fecha de Ingreso: abril-2012
Ubicación: Capital Federal
Mensajes: 283
Antigüedad: 12 años, 8 meses
Puntos: 15
Respuesta: Tiempo de respuesta excesivo en resultado de query con subselect

Gracias gnzsoloyo, ya con modificar el subselect por el count(1) el tiempo de respuesta disminuyó notablemente!

Saludos a todos

Etiquetas: query, respuesta, select, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:34.