Cita: Editado: Como otras veces se me adelantó el compañero gnzsoloyo con la respuesta jejeje, saludos
Hola cariberecord:
El error "java heap space" puede ser ocasionado por varios motivos, no necesarimanete por una consulta ineficiente, aunque si hay varios detalles que podrías ajustar en tu consulta:
1. Las condiciones LIKE son muy tardadas y además, al hacer esto
Código:
ReMovil like '%' and RePuntoControl like '%'
en realidad no estás filtrando nada, podrías eliminar estas dos condiciones y obtener el mismo resultado:
2. Puedes cambiar las condiciones OR por una sola condición IN:
Código:
ReMotivo in ('101', '103', '257', '256', '10')
NOTA, si tus campos SON NUMÉRICOS entonces no hay necesidad de ponerlos entre comillas, ya que de esta manera se tiene que realizar una conversión implícita:
Código:
ReMotivo in (101, 103, 257, 256, 10)
3. Mucho ojo cuando utilices los operadores >= y <= CON CADENAS, ya que pueden tener un comportamiento distinto a los numéricos (al utilizar cadenas lo hace de manera alfabética, no por el valor nominal).
(ReDistancia >= 0 and ReDistancia < 1.5)
4. Si no tienes creados índices, CREALOS. si tienes creados INDICES revisa que sean todos los necesarios para la consulta.
5. Ejecuta la consulta directamente desde la consola de MySQL y no desde tu programa o página y ejecútala con la opción EXPLAIN
http://dev.mysql.com/doc/refman/5.0/es/explain.html
De esta manera podrás darte cuenta si tienes algún otro punto por mejorar.
6. Revisa que efectivamente necesites un LEFT JOIN o si puedes utilizar un INNER JOIN, recordando cómo se comportan cada uno de ellos.
Saludos
Leo.