Ver Mensaje Individual
  #3 (permalink)  
Antiguo 21/11/2014, 06:39
Avatar de David_Carrera_G
David_Carrera_G
 
Fecha de Ingreso: noviembre-2014
Ubicación: Santiago
Mensajes: 37
Antigüedad: 10 años
Puntos: 1
Respuesta: Optimar consulta SELECT

Estimado, de antemano agradezco mucho tu respuesta, pero me asalta una duda luego del LEFT JOIN indicaste una clausula [AND T.ibs IS NULL] esta se te colo o lo agregaste como condición al LEFT JOIN???.

Adjunto la nueva estructura de la consulta, que gracias a tu consejo, se redujo de 5 min en ejecución a 45 segundos. Es increíble lo que consumía el IN.

Código MySQL:
Ver original
  1. SELECT a.*,b.moroso,
  2.        round((datediff(curdate(),(STR_TO_DATE(left(b.activacion,10),'%Y-%m-%d')))/30),0) as MES,c.`Plan Recomendado`
  3. tbl_desconectados a
  4. INNER JOIN arrears_paso b  ON a.customer_id = b.NRO_SUSCRIPTOR AND b.ESTADO_PRODUCTO = 'D'
  5. INNER JOIN ISE_SCORE_NOV14 c ON a.customer_id = c.CLIE_CODIGO
  6. LEFT JOIN (select ibs from compromisos_chile T) T ON T.ibs = a.customer_id
  7. WHERE a.ip=1
  8. AND a.fecha_generacion = '2014-11-13'
  9. AND a.proxy='33'
  10. AND a.pais = 'CHI'
  11. AND a.Contactabilidad = 1
  12. AND YEAR(CAST(b.ACTIVACION AS DATE)) = YEAR(curdate())- 2


Ahora adjunto print del EXPLAIN solicitado, cabe mencionar, que estas bases son transaccionales, por lo cual no poseen indices en sus tablas.


Última edición por David_Carrera_G; 21/11/2014 a las 06:45