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 13:21:24
Message-ID: 2744c9100706150621o76e6cbc1kf30e2e9739b11b57@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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.phpon 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/>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Arturo Munive 2007-06-15 13:41:36 Re: asignar valor creciente
Previous Message Arturo Munive 2007-06-15 13:18:05 Re: asignar valor creciente