Hi,
Stephan Wolff wrote:
Ich hatte vermutet, dass meine verschachtelten Abfragen Schuld sind,
aber Frederik hat mit dieser Beschreibung die Hauptursache getroffen.
Ich habe den Zeitbedarf verschiedener SQL-Abfragen für größere Bereiche
verglichen. Eine einfache Abfrage aller Punkte mit "power=generator"
$ time psql -c "select count(*) from planet_point where power=generator
and way && <bounding_box> ...
benötigte in meinem Testbereich etwa 2,5 Minuten.
Probier mal
CREATE INDEX generator_index ON planet_osm_point using GIST(way
GIST_GEOMETRY_OPS) WHERE power=generator;
Der Request sollte nur wenige Minuten dauern. Danach muesste Deine
Abfrage schneller sein.
Somit bleibt zur Beschleunigung nur die Möglichkeit, eine eigene
Datenbank vorab anzulegen. Kann man Osm2pgsql so konfigurieren,
dass eine weitere Tabelle mitgepflegt wird oder muss man in
regelmäßigen Abständen die gesamte Hauptdatenbank filtern?
Der Query oben macht im Effekt das; er erzeugt einen bedingten Index, in
dem *nur* alle power=generator-Nodes anhand ihrer Position verzeichnet
sind. Das braucht zusaetzlich Platz (aber nicht viel - sind ja nicht so
viele Nodes) und verlangsamt Updates (aber nicht viel), sollte Abfragen
aber deutlich beschleunigen.
Bye
Frederik
--
Frederik Ramm ## eMail [email protected] ## N49°00'09" E008°23'33"
_______________________________________________
Talk-de mailing list
[email protected]
http://lists.openstreetmap.org/listinfo/talk-de