J'ai peur que ma réponse puisse tomber tout à fait à coté de la plaque, mais 
histoire que tu te sentes soutenu dans ton problème ;-)



Perso, j'ai un peu peur de cette condition :

>          WHERE
>              b.osm_id = ANY(planet_osm_rels.parts);

Non pas que je vois une meilleure idée, mais j'ai peur que ça n'utilise aucun 
index et que ça oblige postgresql à la résoudre en séquenciel, et séquenciel, 
ça peut vouloir dire beaucoup


> Celà prend énormément de temps (au moins > 1heure), alors que dans ma
> base des pistes de ski je n'ai que 3319 relations et 67235 ways.
> 
> Celà ne me semble pas si complexe ??

ça peut faire 3319 * 67235 boucles (sachant que planet_osm_rels.parts c'est 
déjà un tableau à parcourir !)

Tu peux tenter la même requete mais avec un EXPLAIN devant ?
genre :
explain select * from bidule;

ça te donnera le "plan de résolution" de ta requête (nombre de boucles, 
indexes utilisés, etc.)


-- 
sly (sylvain letuffe)

_______________________________________________
dev-fr mailing list
[email protected]
http://lists.openstreetmap.org/listinfo/dev-fr

Répondre à