Ver Mensaje Individual
  #3 (permalink)  
Antiguo 07/08/2009, 05:01
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: se puede optimizar esta busqueda....?

Por si te sirve de ayuda, además de lo que te ha dicho Cala932, haz alguna prueba con los cambios que te propongo (yo no he probado nada).

consejo:
-prueba quitando el * de las tablas que unes con UNION y escribe sólo los campos que utilices y haz también la consulta de tiempo y las demás dentro de esa union:

ej.

select SUM(prec), SUM(temp), SUM(hure), SUM(wins), SUM(wind), MIN(temp), MAX(temp), AVG(temp), AVG(hure), AVG(wins), AVG(wind) from ((select prec, temp,hure, wins, winds from DAT2008 where clave='MOR-002' and datetime>='2008-12-28 00:00' and prec <> -999 and temp <> -999 and hure <> -999 and wins <> -999 and wind <> -999 ) union all (select prec, temp,hure, wins, winds from DAT2009 where clave='MOR-002' and datetime<='2009-01-03 23:45' and prec <> -999 and temp <> -999 and hure <> -999 and wins <> -999 and wind <> -999))cant

Como te he dicho, no he probado nada. La idea es que todos esos valores agrupados se hagan sobre menos datos, y quizás el mejor modo de hacerlo es trayéndote sólo los valores que te interesen. Por cierto, que la consulta de datetime la he aplicado pensando que siempre buscarás en esas dos tablas; si no es así, tendrás que aplicar la doble consulta a cada parte de la union.