Message posté par : Nicolas Ribot
----------------------------------------
Bonjour,
Je vous invite à réviser le fonctionnement des index
(
https://www.postgresql.org/docs/13/indexes.html).
Un index se crée sur une table, en amont des traitements que l'on veut faire sur cette
table: ca ne s'insère pas dans une requête SQL.
Dans la requête récursive, le test le plus couteux est de trouver les connexions entre
segments, on utilise st_dwithin pour cela (pour prendre en compte une éventuelle
imprécision dans les données).
L'index ne doit pas etre créé sur toto, mais sur data_subset, table que l'on
utilise dans la récursion. Comme on se sert des startpoint et endpoint des segments de
data_subset, il faut créer deux index sur ces fonctions (un seul probablement est utile,
mais dans le doute, on peut en créer 2, avant de vérifier leur usage avec un explain
...).
-----------------
Code :
create index on data_subset using gist(st_startpoint(geom));
create index on data_subset using gist(st_endpoint(geom));
analyze data_subset;
-----------------
(vous pouvez envoyer vos données qui moulinent ? au format zip, ou mieux, un dump de la
table au format custom)
Nicolas
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=346739#p346739
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net