Ver Mensaje Individual
  #3 (permalink)  
Antiguo 15/05/2009, 08:55
chelodelsur
 
Fecha de Ingreso: abril-2008
Mensajes: 208
Antigüedad: 16 años, 1 mes
Puntos: 2
Respuesta: Optimizar consulta

Gracias gnzsoloyo por la rapida ayuda.

Te cuento, del codigo que me diste agregue un par de lineas por que me daba error:
1. los valores del ON : LEFT JOIN rrserver.agente_15minutos t ON
2. y agregue : LEFT JOIN portalreflex.boletas b ON b.usuario_ingreso = u.portalid

pero al ejecutar la consulta se queda eternamente ahí. Revisé en el servidor con el MySql administrator y la consulta efectivamente ocupa menos recursos que la anterior, pero por alguna razón no devuelve los datos, finalmente la tengo que bajar.

Código MySql:
Ver original
  1. DELIMITER $$
  2. DROP PROCEDURE IF EXISTS `rrserver`.`Informe Agentes2`$$
  3. CREATE PROCEDURE `Informe Agentes2`(  
  4. inicio    datetime,  
  5. fin       datetime,  
  6. vestado    varchar(15),  
  7. empleador varchar(20),  
  8. vcargo     varchar(15))
  9. SELECT    
  10. u.nombreapellido NOMBRE,    
  11. u.portalid USERPORTAL,    
  12. m.tipo_turno `TIPO TURNO`,    
  13. sum(IF(c.numero_consulta IS NULL, 0, 1)) `CONSULTAS`,    
  14. sum(IF(b.usuario_ingreso IS NULL, 0, 1)) `BOLETAS`,    
  15. sum(IF(r.numero_requerimiento IS NULL, 0, 1)) `REQUERIMIENTOS`,    
  16. SUM(IF(t.recibido IS NULL, 0, 1)) `LLAMADAS`  
  17. FROM rrserver.usuarios u    
  18. INNER JOIN monitoreo.agentes m
  19. USING(userid)    
  20. LEFT JOIN portalreflex.consultas c ON c.usuario_ingreso = u.portalid  
  21. LEFT JOIN portalreflex.boletas b ON b.usuario_ingreso = u.portalid  
  22. LEFT JOIN portalreflex.requerimientos r  ON r.usuario_ingreso = u.portalid    
  23. LEFT JOIN rrserver.agente_15minutos t ON  t.userid = m.userid
  24. WHERE m.estado LIKE vestado
  25. AND m.empleador_agente LIKE empleador
  26. AND m.cargo LIKE vcargo  
  27. GROUP BY u.userid  
  28. ORDER BY u.nombreapellido ASC;
  29. END$$
  30. DELIMITER ;

Como siempre muchas gracias por la ayuda