Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/01/2013, 09:14
kryta
 
Fecha de Ingreso: septiembre-2009
Mensajes: 13
Antigüedad: 14 años, 8 meses
Puntos: 0
Query lenta....

Buenas gente,

Hacía bastante que no me pasaba por el foro y os saludo de nuevo :)

Os comento, porque no se si lo estoy haciendo del todo correcto o de la manera más eficiente, es un poco complejo de explicar:

La query en cuestión es la siguiente:

Código:
select proveidors_treballadors.id_prov_treb, nom, coalesce(fac,0) from proveidors_treballadors
left join (select id_prov_treb, ROUND((sum(materials+stock)),2) as fac from albarans 
left join (select id_albara, sum(quantitat*multiplicatiu) as materials from comandes_albarans_families group by id_albara)
    T1 on (albarans.id_albara=T1.id_albara)
left join (select id_albara, sum(quantitat*multiplicatiu) as stock from albarans_families group by id_albara)
    T2 on (albarans.id_albara=T2.id_albara) 
group by id_prov_treb)
T3 on (proveidors_treballadors.id_prov_treb=T3.id_prov_treb)
where tipus_prov_treb = 'proveidor';
Tarda unos 33.1319 segundos :(

El Explain es el siguiente:



El diseño de las tablas indicadas, en amarillo:



Cualquier ayuda es bienvenida. No se porqué hice el diseño en catalán pero bueno....

Gracias y saludos.