Problema com o desempenho do pgRouting parece que o novo pgr_astar e pgr_dijkstra usam o gráfico inteiro (o que garante a solução, se houver). A solução simples para obter melhor desempenho é limitar o gráfico usado a uma área menor. Tem problemas próprios, como às vezes pode criar gráficos que não podem ser resolvidos
(SELECT ST_Expand(ST_Extent(geom_way),0.1) as box FROM hh_2po_4pgr as l1 WHERE l1.source =7 OR l1.target = 12)
Cria BBOX sobre a coleção de origem e destino e a expande em 0,1 graus; a mesma consulta é usada para limitar o tamanho do gráfico na consulta pgr_
Dijkstra de 1.2s a ~ 65ms
SELECT seq, id1 AS node, id2 AS edge, g.geom_way as the_geom
FROM pgr_dijkstra(
'SELECT id, source, target, cost FROM hh_2po_4pgr as r,
(SELECT ST_Expand(ST_Extent(geom_way),0.1) as box FROM hh_2po_4pgr as l1 WHERE l1.source =7 OR l1.target = 12) as box
WHERE r.geom_way && box.box',
7, 12, false, false
) as r INNER JOIN hh_2po_4pgr as g ON r.id2 = g.id ;
A * de 2s a ~ 50ms
SELECT seq, id1 AS node, id2 AS edge, cost
FROM pgr_astar(
'SELECT id, source, target, cost, x1,y1,x2,y2 FROM hh_2po_4pgr as r,
(SELECT ST_Expand(ST_Extent(geom_way),0.1) as box FROM hh_2po_4pgr as l1 WHERE l1.source =7 OR l1.target = 12) as box
WHERE r.geom_way && box.box',
7, 12, false, false
);
o osm2po foi usado para importar dados (último da finlândia) para a tabela postgis. índice de essência adicionado à coluna geom_way e análise de vácuo total executada no banco de dados. memória compartilhada 1G. workmem 512M