Cita:
Iniciado por gnzsoloyo Dos registros no pueden generar semejante demora. Es evidente que hay problemas con la sintaxis de la consulta, o bien los la estructura de datos. En cualquier caso es un tema OFF TOPIC en PHP y deberías preguntar en el foro de PostgreSQL, posteando la query, porque sin verla es imposible hacer un diagnóstico.
PHP no va a solucionar nada, porque no interpreta SQL, ni lo entiende.
Quizás me equivoque, pero considero que debe estar posteado en php
ya que desde el pgadmin de postgresql la query sólo demora 5seg. en su carga.
Gracias por tu consejo, pero discrepo con lo de postearlo en el foro de POSTGRESQL por lo siguiente:
- Siempre habrá querys en la que el resultado demoré más de 5 segundos (el mio demora en sí 6seg), por ello no lo pongo en la sección de postgresql, considero que el problema estaría en php y que quizás haya la manera de aumentar el tiempo de respuesta de la consulta hecha (memoria). Hay queerys muys complejas que considero php puede cargar, como esta.
El query que uso es el siguiente:
Código MySQL:
Ver originalto_char
(ns.fec_guia
, 'Month')AS let_mes
,date_part
('month',ns.fec_guia
)AS num_mes
, to_char
(ns.fec_guia
,'dd-mm-YYYY')AS fec_guia
,prd.des_prod
,ROUND(nsd.can_dgui
,4) AS can_sal
, '0' AS can_dev
, nsd.can_dgui
AS can_cons
, then nsd.pre_guia
/tcmb.tip_cmb
else nsd.pre_guia
*tcmb.tip_cmb
end)end)),4)AS cto_tot
,nsd.cdg_prod
, LEFT(nsd.cdg_prod
,3)AS familia
, ot.num_otrb
,otd.cdg_prod
AS cdg_prod_int
, ns.cdg_mon
,tcmb.tip_cmb
,(case 001 when '002' then 'US$' else 'S/.' end) AS sigla_moneda
INNER JOIN m_guia ns
ON (ns.num_otrb
=ot.num_otrb
AND ns.cdg_tpg
='002' AND ns.swt_est
<>'A') INNER JOIN d_guia nsd
ON (nsd.num_guia
=ns.num_guia
AND ns.cdg_tpg
=nsd.cdg_tpg
) INNER JOIN p_guia mat
ON (mat.num_guia
=ns.num_guia
AND (mat.cdg_term
=otd.cdg_prod
AND mat.cdg_prod
=nsd.cdg_prod
AND mat.num_otrb
=ot.num_otrb
AND mat.num_otrb
=ns.num_otrb
) ) WHERE ot.swt_apr
=1 AND(ot.fec_inic
>='01-3-2015' AND ot.fec_inic
<='31-3-2015') AND ((ot.num_otrb
='') OR (ot.num_otrb
='0200001281' AND otd.cdg_prod
IN('7676100697','7676100698','7676100699','7676100700','7676100701','7676100702','7676100703','7676100704','7676100705')))
Las condicionales del query pueden varias en fechas y num. orden de trabajo.
Y si estoy equivocado en lo que redacto, mil disculpas, pero quiero aferrarme un poco a que el problema estaría en php.
Saludos!.