he estado realizando una consulta que realiza un join entre 4 tablas y ejecuta una función, el detalle es que cuando trato de ordenar los resultados , por el valor obtenido de la funcion esta llega a demorar hasta 3 minutos.
la consulta es la siguiente
Código SQL:
Ver original
SELECT cas.id,cas.tipo, socio, cliente, usu.nombre ,cas.monto, CASE cas.especial WHEN 0 THEN eta.descripcion ELSE esp.descripcion END, getdia(2,cas.id,etapa,especial) AS dia FROM casos cas LEFT JOIN usuarios usu ON usu.id=cas.abogado LEFT JOIN especiales esp ON esp.etapa =cas.especial LEFT JOIN normales eta ON eta.etapa =cas.etapa AND cas.tipo=eta.tipo ORDER BY dia DESC
si no lo ordeno por DIA no demora en ejecutar,
cabe mencionar que tengo 17000 registros.
la pregunta es existe alguna forma de optimizar dicha consulta.