Re: Postgres and Mapserver timeout

From: "Paulina Rodas" <rodas(dot)paulina(at)gmail(dot)com>
To: pcifuentes(at)siigsa(dot)cl
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Postgres and Mapserver timeout
Date: 2007-06-15 15:32:22
Message-ID: 2744c9100706150832h3bc1e76dj97aa14f8a3b5a60c@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Patricio,

ok, voy a enviar al grupo tambien :D.
Tengo configurado el autovacuum cada 10 minutos.

La tabla es:

REATE TABLE gis_t_last_vehicle_state
(
gid integer NOT NULL,
nume_vehi character varying,
event integer,
date_time character varying,
speed integer,
figura geometry,
inte_now_gps integer,
estado character(1),
CONSTRAINT gis_t_last_vehicle_state_pkey PRIMARY KEY (gid) USING INDEX
TABLESPACE indices,
CONSTRAINT enforce_dims_figura CHECK (ndims(figura) = 2),
CONSTRAINT enforce_geotype_figura CHECK (geometrytype(figura) =
'POINT'::text OR figura IS NULL),
CONSTRAINT enforce_srid_figura CHECK (srid(figura) = 24877)
)
WITHOUT OIDS TABLESPACE datos;
ALTER TABLE gis_t_last_vehicle_state OWNER TO msig;

-- Index: i_fig_vehi_stat

-- DROP INDEX i_fig_vehi_stat;

CREATE INDEX i_fig_vehi_stat
ON gis_t_last_vehicle_state
USING gist
(figura)
TABLESPACE indices;

select nume_vehi from gis_t_last_vehicle_state

El día 15/06/07, Patricio Cifuentes Ithal <pcifuentes(at)siigsa(dot)cl> escribió:
>
> Paulina,
> bueno primeroq todo recuerda enviar copia del correo a la lista, asi
> podras obtener mas ayuda aun, con respecto a tu problema, pienso que no sea
> problema d efiguras geograficas, si no que de modelado y diseño d elas
> tablas, me cuentas que haces select sin los campos geograficos y que en 66
> registros se demora 3 minutos, entonces eso puede ser por, hacer vacuum a la
> BD y las tablas, agregarle indices a datos y claves especificas d ebusqueda
> y ademas al campo geom con GIST, podrias tambien decirnos que version de
> postgres y d epostgis estas ocupando, y algun ejemplo de la sconsultas que
> estas haciendo.
>
> yo tambien e desarrollado sistemas de traking para automoviles y si los
> puntos no se sales de mi extencion del box3d que estoy visuliazando entonces
> no despliego todo el mapa, un atecnica buena seria hacer WFS solamnete con
> los puntos q se mueven y desarrollar algo en javascript para q vaya moviendo
> los puntos, pasando de forma geografica a pixel dentro d euna imagen del
> mapa,.
>
>
> Patricio Cifuentes Ithal
> Ingeniero en Informática
> ( : (56 - 2) 204 60 22
> * : pcifuentes(at)siigsa(dot)cl
>
> *Desarrollo Tecnológico*
> *SIIGSA*
> **
>
>
>
> ------------------------------
> *De:* Paulina Rodas [mailto:rodas(dot)paulina(at)gmail(dot)com]
> *Enviado el: *viernes, 15 de junio de 2007 09:21
> *Para:* pcifuentes(at)siigsa(dot)cl
> *CC:* pgsql-es-ayuda(at)postgresql(dot)org
> *Asunto:* Re: [pgsql-es-ayuda] Postgres and Mapserver timeout
>
>
> Patricio,
>
> Bueno el problema es critico, ya que los usuarios consulta la aplicacion
> GIS en todo momento, alrededor de 250 usuarios conectados y que no te
> responda el sistema pues si es critico.
> Tienes razon sobre la escala y el tipo de figura que se almacena. La tabla
> tiene informacion de posicion x,y de los vehiculos de la empresa, los mismos
> que tienen un dispositivo gps que esta reportando su posicion, es por eso
> que estamos actualizando esa tabla cada 20 segundos. el campo geom es tipo
> point.
> Realice una prueba con un programa en java que consulte la tabla en
> cuestion y se demora al retornarme los 66 registros de los cuales en el
> select estan campos no geograficos y se demora unos 3 minutos es retornar la
> consulta y peor aun cuando ejecuto en el mismo programa varias consultas a
> la misma tabla.
> Me preocupa esto ya que cuando se tenga completamente migrado la
> aplicacion, habran usuarios que realizan actualizaciones a tablas
> geograficas con mucha mas informacion geografica (poligonos) y habran otros
> usuarios que consulten esas mismas tablas y tendremos problemas que ni se va
> ha actualizar ni se va a consultar.
> Saludos,
> Paulina
>
>
> El día 14/06/07, Patricio Cifuentes Ithal <pcifuentes(at)siigsa(dot)cl >
> escribió:
> >
> > Paulina,
> > bueno no e stan grave el problema que tienes, tengo una duda con
> > respecto a la version del postgres quiza redactaste mal la version, pero no
> > debe ser ese el error, bueno una de las tantas soluciones pasan mas que todo
> > por recomendaciones, para los desarrolladores de sistemas GIS en web con
> > postgis y mapserver con php, sugiero aumentar el tiempo d eejecución de
> > script en php(en php.ini), ya que los datos geograficos son bastante
> > pesados, por ende puede que se demore muxo mas en ejecutar y responder un
> > select a la BD, tu acalaracion con respecto a solo 66 registros en datos
> > geograficos puede que sean bastante pesados, a q me refiero, a que l ainfo
> > geografica que se guarda a traves d epostgis son los campos tipics d euna BD
> > cualquiera o tabla cualquiera, pero debes reecordar que tambien existe el
> > campo the_geom el cual guarda la informacion d egeorreferenciacion
> > geografioca de la figura que se va a visualizar, mira un ejemplo claro y un
> > poco tecnico par alos q entienden un poco d egis, yo quiero hacer un mapa
> > con el pais Chile, y sus 15 regiones, tecnicamnete y si s ehace un proceso
> > topografico como corresponde, en tabla me debieran quedar solo 15 registros,
> > esto es super poco, pero toma en cuenta que si esa informacion fue tomada de
> > una escala de 1:250000 puede que sea pesada, imaginate que sea una escala de
> > 1:50000es mas pesada ya que tiene mayor detalle por lo tanto mayor volumen d
> > einformacion recuerda q el campo the_geom se guardan todos los X,Y de la
> > figura geografica entre mas detalle tengas , mas coordenadas X,Y tendra, por
> > lo tanto mas informacion, yo he hecho bench de una consulta d echile de
> > escala 1:10000 con solo 15 registros y se demora en unserver mas menos
> > potente un promedio de 50 segundos lo cual es bastante tomando en cuenta la
> > cantidad de registros, por eso que debes pensar en el campo the_geom que
> > puede traer muchicima informacion, por si no lo sabias, en las primeras
> > versiones de postgis el campo the_geom es de tipo geographics pero se
> > guardaba como texto, esto lo hacia casi imposible d econsultar sobre varias
> > figuras geograficas, en las nuevas versiones de postgis este campo guarda la
> > informacion en binario o hexadecimal, para que tenga un poco mas rapidez,
> > ahora la otra acalaracion es que estas ocupando la funcion ASKML lo que hace
> > esa funcion es recorrer toda la figura geografica convertir el hexadecimal
> > en texto y devolvverte un string con formato de xml, ojo existe doc que dice
> > q eso no es bueno con figuras d etipo linea o poligono, otro ejemplo de eso
> > es, imaginate un rio , etse rio tiene distinto quiebres por ende muxos
> > vertices, cada uno de estos vertices contiene la coord X,Y hacer ese
> > recorrido puede hacer muy pesado, ojo que esto no es tan catastrofico como
> > creen, existen soluciones para etso como por ejemplo agregar un where dentro
> > d ela consulta, un BOX3D en donde solo tomas la extension visible so d ela
> > que quieras preguntar de esa forma la consulta recorre menos registros, otro
> > ejemplo de eso es, si yo tengo la figura d etodo Chile y quiero solo
> > visualizar una region, pues saco la extension d ela region y d ela consulta
> > general saco el extend,: select * from tabla_geo where the_geom && 'BOX3D(X
> > Y, X Y)' los dos parametros del box3d corresponde al xmin y min xmax y max d
> > euna extension, por lo tanto como las figuras son irregulares lo mas
> > probable es q tambien me traida registros geograficos aledaños a la region
> > en cuestion que estoy consultando, osea en total 3 registros en vez d e15,
> > eso e sun gran avace, esto esta bien cuando la visaulizacion ennetamenete
> > geografica, ahora tambien debes considerar el agregar indices dentro dl
> > campo the_geom, esto aparece super detallado y bastante explicativo en los
> > manuales d epostgis, donde puedes encontrar indices GIST que son de bastante
> > utilidad en estos casos, y puedes reducir consultas como mi bech de 50
> > segundos a solo 2,3 seg. otra recomendacion es que pasa subr la cartografia
> > a postgres atraves d epostgis recuerda q esta cartografia en el DBF debe
> > estar normalizado, ya que postgres es una BD relacional asi q tambien
> > cuidado con eso d eno subir campos q esten demas
> >
> >
> > Patricio Cifuentes Ithal
> > Ingeniero en Informática
> > ( : (56 - 2) 204 60 22
> > * : pcifuentes(at)siigsa(dot)cl
> >
> > *Desarrollo Tecnológico*
> > *SIIGSA*
> > **
> >
> >
> >
> > ------------------------------
> > *De:* pgsql-es-ayuda-owner(at)postgresql(dot)org [mailto:pgsql-es-ayuda-owner(at)postgresql(dot)org]
> > *En nombre de *Paulina Rodas
> > *Enviado el:* jueves, 14 de junio de 2007 09:29
> > *Para:* pgsql-es-ayuda(at)postgresql(dot)org
> > *Asunto:* [pgsql-es-ayuda] Postgres and Mapserver timeout
> >
> >
> > Estimados,
> >
> > Tengo un problema para realizar consultas a una tabla que se actualiza
> > cada 20 segundos.
> > El ambiente es:
> >
> > Bdd postgres version 1.6.2 en Linux,
> > Mapserver en Windows 2000
> > Servicio windows que realiza la actualizacion de dos tablas cada 20
> > segundos
> >
> > Servicio: La actualizacion es cada 20 segundos y registro por registro,
> > la tabla tiene 66 registros, El servicio actualiza en dos tablas cada una de
> > 66 registros, y realiza una consulta sobre una de las tablas "select
> > askml(figura) from tabla" para generar un archivo kml.
> > MapServer realiza la consulta a una tabla para presentar datos
> > actualizados, pero cuando la aplicacion de mapserver se dibuja y tiene que
> > cargar los datos de la tabla se demora y da el error de *" Fatal error:
> > Maximum execution time of 30 seconds exceeded in
> > D:\eeq\htdocs\eeq.inc.php on line 431",* y cuadno le bajo al servicio
> > ahi la aplicacion responde rapido y no da error.
> >
> > En windows tengo instalado pgAdmin, con el cual visualizo el estado del
> > servidor y se visualiza que se demora en el select de "askml", en los update
> > no se demora nada en cada update, y se queda un *"fetch all in mycursor"
> > * que es de mapserver hasta que da un time out.
> > Por favor necesito ayuda con esto, estamos migrando nuestra aplicacion
> > de gis y nuestra base de datos oracle a postgis, pero tenemos estros
> > problemas, es urgente solucionarlo si no se desistira la migracion, ya que
> > la aplicacion gis es altamente utilizada en la empresa.
> >
> >
> > Saludos,
> > Paulina
> >
> >
> > --
> > Este mensaje ha sido analizado por MailScanner<http://www.mailscanner.info/>
> > en busca de virus y otros contenidos peligrosos,
> > y se considera que está limpio.
> >
> > *www.siigsa.cl* <http://www.siigsa.cl/>
> >
> >
> > --
> > Este mensaje ha sido analizado por MailScanner<http://www.mailscanner.info/>
> > en busca de virus y otros contenidos peligrosos,
> > y se considera que está limpio.
> >
> > *www.siigsa.cl* <http://www.siigsa.cl/>
>
>
>
> --
> Este mensaje ha sido analizado por MailScanner<http://www.mailscanner.info/>
> en busca de virus y otros contenidos peligrosos,
> y se considera que está limpio.
>
> *www.siigsa.cl * <http://www.siigsa.cl/>
>
>
> --
> Este mensaje ha sido analizado por MailScanner<http://www.mailscanner.info/>
> en busca de virus y otros contenidos peligrosos,
> y se considera que está limpio.
>
> *www.siigsa.cl* <http://www.siigsa.cl/>
>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2007-06-15 15:39:12 Re: Postgres and Mapserver timeout
Previous Message Denis González 2007-06-15 14:55:12 Re: asignar valor creciente