PgRout प्रदर्शन के साथ समस्या यह प्रतीत होती है कि नए 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_ क्वेरी में ग्राफ़ आकार को सीमित करने के लिए किया जाता है
Dijkstra 1.2s से ~ 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 * 2s से ~ 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 का उपयोग डेटा (फ़ाइनल-नवीनतम) को पोस्टगिस तालिका में आयात करने के लिए किया गया था। gist index को geom_way कॉलम में जोड़ा गया और डेटाबेस के लिए फुल वैक्यूम एनालिसिस चला। साझा स्मृति 1G। workmem 512M