Tengo la tabla de red, que tiene alrededor de 2 millones de registros (sólo 3 países de Europa). Cuando ejecuto Shorthest de la ruta es muy lento, tarda 3 min para tomar sólo los registros. He probado con dijkstra-sp-delta-dirigido, pero también es lento, 2-2.5 min. Este sp es el uso de cuadro delimitador y la esencia del índice, así que debe ser más rápido, pero no lo es. En el futuro, debo añadir algún otro país, así que la tabla va a ser muy grande.
¿Qué podría hacer yo para hacer esto de enrutamiento más rápido? Que yo sepa Postgre no tiene la opción de guardar la tabla temporal en la memoria RAM, sólo funciona en una sola sesión.
Tengo 4 GB de RAM, yo trabajo con OSM y Postgre porque es gratis, yo realmente no sé ¿hay alguna solución para este problema? No estoy en posición para comprar algo caro, he demanda para el trabajo con fuentes abiertas. Por supuesto que todo el mundo espera rápida y barata solución que funciona como Google :)
Actualización:
Por la ruta más rápida (evitar el peaje , evitar carreteras) mi consulta es:
SELECT * FROM shortest_path(
'SELECT gid AS id,
source::int4 AS source,
target::int4 AS target,
time + cost::float8 AS cost,
time + reverse_cost::float8 AS reverse_cost
from network where toll is null and road_class!=1 ',
257027, 276521, true, true)
Para el shothest ruta (evitar el peaje , evitar carreteras) mi consulta es:
SELECT * FROM shortest_path(
'SELECT gid AS id,
source::int4 AS source,
target::int4 AS target,
length + cost::float8 AS cost,
length + reverse_cost::float8 AS reverse_cost
from network where toll is null and road_class!=1 ',
257027, 276521, true, true)