Vấn đề với hiệu suất pgRouting dường như là pgr_astar và pgr_dijkstra mới sử dụng toàn bộ biểu đồ (đảm bảo giải pháp nếu có). Giải pháp đơn giản để có hiệu suất tốt hơn là giới hạn biểu đồ được sử dụng cho diện tích nhỏ hơn. Nó có vấn đề riêng như đôi khi nó có thể tạo ra các biểu đồ không thể giải quyết
(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)
Tạo BBOX qua bộ sưu tập nguồn và đích và mở rộng 0,1 độ, sau đó cùng một truy vấn được sử dụng để giới hạn kích thước biểu đồ trong truy vấn pgr_
Dijkstra từ 1,2 đến ~ 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 * từ 2 giây đến ~ 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
);
osm2po đã được sử dụng để nhập dữ liệu (mới nhất là finland) vào bảng postgis. chỉ số chính được thêm vào cột geom_way và phân tích chân không đầy đủ chạy cho cơ sở dữ liệu. chia sẻ bộ nhớ 1G. công việc 512M