pgRoutingのパフォーマンスに関する問題は、新しいpgr_astarとpgr_dijkstraがグラフ全体を使用していることです(グラフがある場合は、それによってソリューションが保証されます)。より良いパフォーマンスを得るための簡単な解決策は、使用するグラフをより小さな領域に制限することです。解決できないグラフが作成される場合があるなど、独自の問題があります
(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)
ソースおよびターゲットコレクション上にBBOXを作成し、0.1度展開します。次に、同じクエリを使用して、pgr_クエリのグラフサイズを制限します
ダイクストラが1.2秒から最大65ミリ秒
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 * 2秒から最大50ミリ秒
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
);
osm2poはデータ(フィンランド最新)をpostgisテーブルにインポートするために使用されました。geom_way列に追加された要旨インデックス、およびデータベースのフルバキューム分析の実行。共有メモリ1G。workmem 512M