Closed flacombe closed 3 years ago
Il y a plusieurs choses à tester progressivement :
&&
en complément du ST_Intersects
: JOIN pdm_boundary b ON fb.geom && b.geom AND ST_Intersects(fb.geom, b.geom)
ST_Subdivide
: https://www.stevencanplan.com/2017/12/the-genius-of-using-st_subdivide-to-speed-up-postgis-intersection-comparisons/postgis_topology
: https://trac.osgeo.org/postgis/wiki/UsersWikiSimplifyWithTopologyExtMerci, voici les résultats obtenus :
Un test avec un maxVertices=512 donne un temps de calcul à 47s Donc je vais partir là dessus, ca me semble suffisant (j'attends d'avoir fini les modifs complètes pour fermer ces issues avec la MR)
Il y a visiblement un problème avec la comparaison des géométries des objets d'un projet avec celle des limites administratives.
Plus précisément, lors de l'initialisation d'un projet ayant déjà plusieurs centaines de milliers de changements, comparer ces centaines de milliers de lignes avec 40k géométries non simplifiées prend trop de temps.
J'essaie de tester des astuces pour accélérer tout ça, mais pas évident : quelle que soit la requête, dès qu'il y a le ST_Intersect(pdm_boundary), la requête ne répond pas.
Une piste est de faire la comparaison sur des enveloppes des limites administratives Comparaison :
Maintenant créons une table d'enveloppes
Le explain change de tête, la requête ne prend plus que 3 minutes pour 200k features et 40k limites administratives
Biensur les enveloppes ne sont pas la solution : on est pas aux USA