Dentro de Postgres/PostGIS he escrito una consulta SQL para obtener la distancia más cercana para cada elemento dentro de un punto de coordenadas tabla a partir de una polilínea de la tabla. La consulta viene de nuevo y funciona correctamente, pero se tarda aproximadamente 1 minuto por cada registro (véase la instrucción SQL siguiente nota: me he limitado a los 10 primeros registros para que yo pueda derivar cuánto tiempo tomaría por registro, de lo contrario, se podría tomar días para procesar todos los 366,681 registros). He creado un GIST índice tanto en la "the_geom" campos de la tabla.
La otra tabla que es polilínea ha 369,962 registros.
¿Cómo puedo hacer una Postgres/PostGIS ST_Distance_sphere consulta más eficiente?
select "ParAdd", "ParZip", min(distance) from
(SELECT a."ParAdd", a."ParZip", ST_Distance_sphere(a.the_geom, b.the_geom) distance
FROM
(
select "ParAdd", "ParZip", the_geom
from reflux_blue_06_21_2012_15147_va_md_premise_res_prosp_filtered_t limit 10) a,
(
select the_geom
from reflux_blue_06_21_2012_15147_va_md_premise_gis_main_pipe_4326) b
) as testing group by "ParAdd", "ParZip" ORDER BY "ParAdd", "ParZip"