RE: Postgres and Mapserver timeout

From: "Patricio Cifuentes Ithal" <pcifuentes(at)siigsa(dot)cl>
To: "'Paulina Rodas'" <rodas(dot)paulina(at)gmail(dot)com>, <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: Postgres and Mapserver timeout
Date: 2007-06-14 14:50:15
Message-ID: FA8C83C206A249D682ED2B4ACC2C0DC9@victoria
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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.

<http://www.siigsa.cl> www.siigsa.cl

--
Este mensaje ha sido analizado por MailScanner
en busca de virus y otros contenidos peligrosos,
y se considera que está limpio.

www.siigsa.cl

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message NachXs 2007-06-14 15:13:57 PostgreSQL para Entidad Financiera
Previous Message Oscar Cano 2007-06-14 14:17:36 Re: Seguridad