From: Sarah Hoffmann Date: Thu, 20 Aug 2020 14:37:33 +0000 (+0200) Subject: increase splitting for large geometries X-Git-Tag: v3.6.0~88^2~1 X-Git-Url: https://git.openstreetmap.org./nominatim.git/commitdiff_plain/559fe513fa8ffa3a5bc3a7d07c252a872614c073 increase splitting for large geometries When computing the address parts for a geometry, we need to do a ST_Relates lookup in the location_area_large_* tables. This is potentially very expensive for geometries with many vertices. There is already a funtion for splitting large areas to reduce the impact. This commit reduces the minimum area of a split, effectively increasing the number of splits. The effect on database size is minimal (around 3% increase), while the indexing speed for streets increases by a good 60%. --- diff --git a/sql/functions/utils.sql b/sql/functions/utils.sql index a8c4638c..6697ff97 100644 --- a/sql/functions/utils.sql +++ b/sql/functions/utils.sql @@ -429,7 +429,7 @@ DECLARE geo RECORD; BEGIN -- 10000000000 is ~~ 1x1 degree - FOR geo IN select quad_split_geometry(geometry, 0.25, 20) as geom LOOP + FOR geo IN select quad_split_geometry(geometry, 0.01, 20) as geom LOOP RETURN NEXT geo.geom; END LOOP; RETURN;