Masalah dengan kinerja pgRouting tampaknya adalah bahwa pgr_astar dan pgr_dijkstra baru menggunakan seluruh grafik (yang menjamin solusi jika ada satu). Solusi sederhana untuk mendapatkan kinerja yang lebih baik adalah membatasi grafik yang digunakan untuk area yang lebih kecil. Ini memiliki masalah sendiri seperti kadang-kadang dapat membuat grafik yang tidak dapat diselesaikan
(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)
Membuat BBOX dari koleksi sumber dan target dan memperluasnya 0,1 derajat, lalu kueri yang sama digunakan untuk membatasi ukuran grafik dalam kueri pgr_
Dijkstra mulai 1.2s hingga ~ 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 * dari 2s hingga ~ 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 digunakan untuk mengimpor data (finland-latest) ke dalam tabel postgis. indeks inti ditambahkan ke kolom geom_way dan menjalankan analisis vakum penuh untuk database. memori bersama 1G. 512M workmem