Hola a todos,

A ver si alguien me puede arrojar algo de luz al problema que me ocupa estos últimos días.

Tengo montado un servidor cartográfico mediante Mapserver + Openlayers + Geoext. De momento todo funciona bien, el problema que tengo es que cuando hago un GetFeatureInfo a la base de datos Mapserver me tarda demasiado (unos 20-25 segundos) en devolver la información de los elementos (en total no se muestran más de 15 elementos en el mapa distribuidos en 7 capa sconsultables). La url sería la siguiente:

http://localhost/cgi-bin/mapserv.exe?map=../htdocs/mapa.map&&service=WMS&version=1.1.0&request=GetFeatureInfo&layers=actividad0,actividad1,actividad2,actividad3,actividad4,actividad5,actividad6&query_layers=actividad0,actividad1,actividad2,actividad3,actividad4,actividad5,actividad6&styles=,,,,,,&bbox=-16.795006%2C28.065467%2C-16.656303%2C28.130885&srs=EPSG%3A4326&feature_count=10&x=370&y=322&height=432&width=808&info_format=text%2Fhtml

Comentar que consulto a una base de datos SQL Server 2005 mediante ODBC a través de VirtualSpatialData OGR, ya que aquella contiene datos geográficos no explícitos. La configuración de los parámetros del OGRVRTDataSource es la siguiente para cada capa (únicamente cambia la SQL mínimamente):

<OGRVRTDataSource>
       <OGRVRTLayer name='actividad6'>
       <SrcDataSource>ODBC:@AdejeDB</SrcDataSource>
<SrcSQL>SELECT e.matricula AS matricula, t.longitud AS longitud, t.latitud AS latitud, e.id_equipo AS id_equipo, e.denominacion AS denominacion, t.fecha_hora_ultima_posicion AS hora_posicion, t.fecha_hora_salida_parque AS hora_salida FROM (SELECT * FROM posiciones_gps_tr AS p WHERE p.grupo_actividad=6 AND p.obsoleta=0) AS t, equipos AS e WHERE e.id_ayuntamiento=1 AND t.oid_equipo=e.oid ORDER BY t.OID_equipo</SrcSQL>
       <FID>id_equipo</FID>
       <GeometryType>wkbPoint</GeometryType>
       <LayerSRS>WGS84</LayerSRS>
<GeometryField encoding='PointFromColumns' x='longitud' y='latitud'/>
       </OGRVRTLayer>
</OGRVRTDataSource>


Tanto la base de datos SQL Server como la versión de Mapserver (v. 4.10.2) me vienen dados por lo que ahí no puedo tocar nada. Vengo dándole vueltas y no encuentro la forma de acelerar la query. Probando las SQL en la base de datos no tardan casi nada, porque se ejecutan sobre tablas con pocos registros. Pienso que pueda ser al conectar a la BD mediante ODBC+OGR, porque testeando el archivo Virtual Data con ogrinfo en consola tarda unos 3 seg. por capa en devolver resultados (3x7=21 seg.).

Indiscutiblemente accediendo a través de OGR tiene que ser más lento pero no se si esto es normal y si hay alguna forma de acelerarlo. A ver si alguien puede echarme un mano.

Saludos.

Emilio Gómez Fernández




_______________________________________________
Spanish mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/spanish

Responder a