Moin!
Am 01.02.2011 19:41, schrieb Frederik Ramm:
Stephan Wolff wrote:
Der von mir erstellten Regeln führen leider zu sehr sehr langen
Renderzeiten.
[...] Ausserdem hat die Standard-Datenbank
auch keine Indexe ausser dem geografischen; Deine Abfragen sind ja oft:
select "haufen krimskrams" from planet_osm_line where power="line"
da wird dann ueber den GIN-Index alles rausgesucht, was in dem geogr.
Bereich ist, und per table scan dann jede einzelne Linie angechaut, ob
sie vielleicht power=line hat.
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. Komplexe,
geschachtelte select-Anweisungen
$ time psql -c "select sum(output) from (select "haufen krimskrams" from
planet_point where power=generator and way && <bounding_box> ...
waren nur wenige Sekunden langsamer. Auch die Position des geogr.
Filters in der inneren oder in der äußeren select-Anweisung machten
keinen Unterschied.
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?
Vielen Dank auch an meinen Namensvetter Stephan und Tim für die
hilfreichen Kommentare. Jetzt verstehe ich besser, wie Mapnik die
Karten rendert.
Viele Grüße, Stephan
_______________________________________________
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de