Am Mittwoch, 2. Oktober 2013, 23:36:49 schrieb Christian Quest: > Si on indique une bbox, overpass passera en revue tout les objets dans > cette bbox sans pouvoir tirer partie de ses index. > Si on utilise seulement un tag, overpass utilise l'index sur ce tag pour > trouver les objets correspondants qui si ils sont peu nombreux donneront le > résultat très rapidement.
Je voudrais adjouter quelque détails: Au prémier, on peut forcer overpass d'utiliser ses indexes dans l'ordre qui convient. Regardons encore un fois le requête: > way > ["power"="sub_station"] > ["operator"="RTE"] > (41.333740, -5.140600, 51.089062, 9.559320); > (._;>;); > out body; Si on écrit way ["power"="sub_station"] ["operator"="RTE"]; way ._ (41.333740, -5.140600, 51.089062, 9.559320); (._;>;); out body; on enforce overpass d'amasser au premier tous les ways avec les deux tags, puis les filtrer pour le bbox. Les deux requêtes ont le méme résultat, mais la deuxieme est plus vite. Plus compliqué, c'est plus vite à overpass-api.de depuis une heure, parce-que je viens de corriger un bogue qui à ralentisse tous les requêtes avec grand bbox, mais n'a pas changé les résultat (et pour ça a été jamais trouvé par des testes). > overpass n'a pas la puissance (relative) du query planner de postgres qui > va tenter d'exploiter le meilleur index et la meilleure méthode en fonction > de la requête et des données (via des statistiques). Un "query planner" ne serais pas un grande aide ici, parce-que il n'y a pas beaucoup des indexes pour choisir dans overpass. Au contraire, il faut seulement connâitre en avance combien des objets sont dans un bbox particulière. Si on connâit ça, on peut compter si suivre des objets individuel ou lire tous les objets au bbox et plus vite. Il voire existe le code pour compter des résultat. Mais je prefère faire des testes nombreux avant d'integrer ce code, parce-que avoir toujours les résultats corrects est plus important que faire les requêtes plus vite. Ce code n'est pas encore bien testé. On va gangner en plus si on utilise les deux indexes géographiques (de bbox et des le objets trouvés) en parallel. C'est une chance pour gagner vitesse dans des versions subséquentes. Au moment, j'implemente à overpass de stocker aussi l'histoire d'OSM. Ca va simplifier de retrouver des objects supprimer et également de suivre des changes au base des donées. Mais parce-que c'est un grand étape, j'ai repousse tous les autres changes. En totale, dans quelque mois les deux requêtes seront également vite, mais au moment on devrait preferer le deuxième. Roland _______________________________________________ Talk-fr mailing list Talk-fr@openstreetmap.org https://lists.openstreetmap.org/listinfo/talk-fr